2016-08-03 13 views
3

MediaPlayerの再生パラメータを変更しようとすると、アプリがクラッシュします。 なぜこれが起こっているのか分かりません。MediaPlayer setPlaybackParamsクラッシュ

再生速度を変更するために使用しているコードは次のとおりです。あなたのメディアプレーヤが準備されていることを確認する必要が

08-02 21:09:35.184 E/AndroidRuntime: FATAL EXCEPTION: main 
            Process: com.hackmodford.bigfinish, PID: 30986 
            java.lang.IllegalStateException 
             at android.media.MediaPlayer.setPlaybackParams(Native Method) 
             at com.hackmodford.bigfinish.mediaPlayerService.MediaPlayerService.incrementPlaybackRate(MediaPlayerService.java:543) 
             at com.hackmodford.bigfinish.mediaPlayerService.MediaPlayerService.access$1000(MediaPlayerService.java:47) 
             at com.hackmodford.bigfinish.mediaPlayerService.MediaPlayerService$3.onCustomAction(MediaPlayerService.java:336) 
             at android.support.v4.media.session.MediaSessionCompat$Callback$StubApi21.onCustomAction(MediaSessionCompat.java:832) 
             at android.support.v4.media.session.MediaSessionCompatApi21$CallbackProxy.onCustomAction(MediaSessionCompatApi21.java:231) 
             at android.media.session.MediaSession$CallbackMessageHandler.handleMessage(MediaSession.java:1246) 
             at android.os.Handler.dispatchMessage(Handler.java:102) 
             at android.os.Looper.loop(Looper.java:148) 
             at android.app.ActivityThread.main(ActivityThread.java:5422) 
             at java.lang.reflect.Method.invoke(Native Method) 
             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
+1

は、そのメソッドを呼び出すと再生されるメディアですか? – muratgu

+0

@muratguはいです。 – Hackmodford

+0

それが原因かもしれません。 – muratgu

答えて

-1
mPlayer.getPlaybackParams().setSpeed(1.5f); 
+5

詳細を追加できますか? 1行のコードは読者には役に立たない – goto

+0

通常、あなたの記事にコードの仕組みを説明する説明を追加することをお勧めします。これにより、新しい開発者はコードの内容を理解することができます。 –

0

:この場合

PlaybackParams params = new PlaybackParams().allowDefaults(); 
params.setSpeed(mPlaybackRate.getValue()); 
mMediaPlayer.setPlaybackParams(params); 

はmPlaybackRate.getValue()これはクラッシュログで1.25f

を返します! ので、あなたは、このようにリスナーを設定しようとすることができます:それは私の作品

mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){ 
      public void onPrepared(MediaPlayer var1) { 
       PlaybackParams params = mMediaPlayer.getPlaybackParams(); 
       params.setSpeed(3.0f); 
       mMediaPlayer.setPlaybackParams(params); 
      } 
     }); 

関連する問題