{"id":452,"date":"2011-07-29T11:05:25","date_gmt":"2011-07-29T18:05:25","guid":{"rendered":"https:\/\/gonzalo.aro.cl\/blog\/?p=452"},"modified":"2011-07-29T11:05:25","modified_gmt":"2011-07-29T18:05:25","slug":"ejecutar-un-audio-constante-en-android","status":"publish","type":"post","link":"https:\/\/gonzalo.aro.cl\/blog\/2011\/07\/29\/ejecutar-un-audio-constante-en-android\/","title":{"rendered":"Ejecutar un audio constante en Android"},"content":{"rendered":"<p>Cuando se programa un juego por lo general se requiere escuchar dentro del juego una musica constante. Para ello se genera un clase para que este audio constante pueda ejecutarse en un loop infinito<\/p>\n<pre class=\"brush: java\">\r\nimport android.app.Activity;\r\nimport android.os.Bundle;\r\nimport cl.aro.android.AudioConstante;\r\n\r\npublic class Main extends Activity{\r\n\tAudioConstante audio;\r\n\t\r\n    public void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.main);\r\n\/\/      startService(new Intent(this, servicio.class));\r\n        audio = getAudioConstante(R.raw.uno);\r\n        audio.play();\r\n        setContentView(new juegoView(this));\r\n    }\r\n\r\n    protected AudioConstante getAudioConstante(int id) {\r\n    \treturn new AudioConstante(getBaseContext(), id);\r\n    }\r\n}\r\n<\/pre>\n<p>El codigo de la clase de audio ser\u00eda<\/p>\n<pre class=\"brush: java\">\r\npackage cl.aro.android;\r\n\r\nimport android.content.Context;\r\nimport android.media.MediaPlayer;\r\n\r\npublic class AudioConstante {\r\n\tprivate MediaPlayer mediaPlayer;\r\n\tprivate boolean estaSonando = false;\r\n\tprivate boolean enLoop = false;\r\n\r\n\tpublic AudioConstante(Context ctx, int resID) {\r\n\t\tmediaPlayer = MediaPlayer.create(ctx, resID);\r\n\t\tmediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {\r\n\t\t\t@Override\r\n\t\t\tpublic void onCompletion(MediaPlayer mp) {\r\n\t\t\t\testaSonando = false;\r\n\t\t\t\tif (enLoop) {\r\n\t\t\t\t\tmp.start();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tmediaPlayer.start();\r\n\t}\r\n\r\n\tpublic synchronized void play() {\r\n\t\tif (estaSonando)\r\n\t\t\treturn;\r\n\t\tif (mediaPlayer != null) {\r\n\t\t\testaSonando = true;\r\n\t\t\tmediaPlayer.start();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic synchronized void stop() {\r\n\t\ttry {\r\n\t\t\tenLoop = false;\r\n\t\t\tif (estaSonando) {\r\n\t\t\t\testaSonando = false;\r\n\t\t\t\tmediaPlayer.pause();\r\n\t\t\t}\r\n\t\t} catch (Exception e) {\r\n\t\t\tSystem.err.println(\"Error\");\r\n\t\t}\r\n\t}\r\n\r\n\tpublic synchronized void loop() {\r\n\t\tenLoop = true;\r\n\t\testaSonando = true;\r\n\t\tmediaPlayer.start();\r\n\t}\r\n\r\n\tpublic void release() {\r\n\t\tif (mediaPlayer != null) {\r\n\t\t\tmediaPlayer.release();\r\n\t\t\tmediaPlayer = null;\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Cuando se programa un juego por lo general se requiere escuchar dentro del juego una musica constante. Para ello se genera un clase para que este audio constante pueda ejecutarse en un loop infinito import android.app.Activity; import android.os.Bundle; import cl.aro.android.AudioConstante; public class Main extends Activity{ AudioConstante audio; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); \/\/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,4,29,6],"tags":[],"class_list":["post-452","post","type-post","status-publish","format-standard","hentry","category-android","category-desarrollo","category-eclipse","category-java"],"_links":{"self":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/452"}],"collection":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/comments?post=452"}],"version-history":[{"count":5,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/452\/revisions"}],"predecessor-version":[{"id":457,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/posts\/452\/revisions\/457"}],"wp:attachment":[{"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/media?parent=452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/categories?post=452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gonzalo.aro.cl\/blog\/wp-json\/wp\/v2\/tags?post=452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}