edit3:ああ!SPが「サンプル14の準備ができていない」ときにMPがクラッシュしました...
編集2:私はまた私の活動に短い効果音を再生するSoundPoolを持っています、そして明らかに、それはどういうわけかMediaPlayerを殺します。MediaPlayerがロードされるように、約1秒間再生され、SPがロードされると停止します。後でMediaPlayerをロードすると、SPがすでにロードされているときに、MPは正常に再生を開始しますが、SPでいくつかのサウンドFXを再生すると停止します...
古い:音楽のサウンドファイルを再生しようとしています。長さは約2分です...
try {
MediaPlayer mp = MediaPlayer.create(main.this, R.raw.naturesounds );
mp.prepare();
mp.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
それでもそれは投げます
06-29 16:50:52.359: E/MediaPlayer(3772): prepareAsync called in state 8
06-29 16:50:52.359: W/System.err(3772): java.lang.IllegalStateException
06-29 16:50:52.359: W/System.err(3772): at android.media.MediaPlayer.prepare(Native Method)
06-29 16:50:52.359: W/System.err(3772): at engineDemo.com.main.fillWorld(main.java:132)
06-29 16:50:52.359: W/System.err(3772): at engineDemo.com.main.onCreate(main.java:83)
06-29 16:50:52.359: W/System.err(3772): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-29 16:50:52.359: W/System.err(3772): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
06-29 16:50:52.359: W/System.err(3772): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
06-29 16:50:52.359: W/System.err(3772): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-29 16:50:52.359: W/System.err(3772): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
06-29 16:50:52.359: W/System.err(3772): at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 16:50:52.359: W/System.err(3772): at android.os.Looper.loop(Looper.java:130)
06-29 16:50:52.359: W/System.err(3772): at android.app.ActivityThread.main(ActivityThread.java:3683)
06-29 16:50:52.359: W/System.err(3772): at java.lang.reflect.Method.invokeNative(Native Method)
06-29 16:50:52.359: W/System.err(3772): at java.lang.reflect.Method.invoke(Method.java:507)
06-29 16:50:52.359: W/System.err(3772): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-29 16:50:52.363: W/System.err(3772): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-29 16:50:52.363: W/System.err(3772): at dalvik.system.NativeStart.main(Native Method)
何が間違っているのか、またはバックグラウンドミュージックを再生するための最良の方法は何ですか?
ありがとう!
編集:
このように編集
final MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.naturesounds);
mediaPlayer.setOnPreparedListener(new OnPreparedListener(){
public void onPrepared(MediaPlayer arg0) {
Log.e("ready!","ready!");
mediaPlayer.start();
}} );
ログは表示されますが、それでも何も再生されません...