2017-11-06 5 views
1

次のコードを使用しました。 オーディオは再生されていますが、滑らかではありません。MediaPlayerを使用してオーディオがスムーズに再生されませんか?

public class MainActivity extends AppCompatActivity { 

    MediaPlayer mediaPlayer; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.sample); 
     mediaPlayer.start(); 
    } 
+0

コードが掲載さは、再生は、おそらく、特定の音のサンプルを再現するデバイスの機能が制限されている、その後スムーズされていない場合、私は推測する、非常に簡単です。 – pleft

+0

デバイスの機能に問題はありません –

答えて

0

UIスレッドではなく、別のスレッドでmediaplayerを使用する必要があります。スムーズに再生されます。

+0

prepareAsync()を使用すると完了します。ありがとう –

1

OnPreparedListenerを追加し、onPrepared方法で再生を開始:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.sample); 
    mediaPlayer.setOnPreparedListener(new OnPreparedListener() 
    { 
     @Override 
     public void onPrepared(MediaPlayer mp) 
     { 
      mp.start(); 
     } 
    }); 
    mediaPlayer.prepare(); 
} 
+0

mediaPlayer.prepare()がIOExceptionをスローし、IllegalStateExceptionを引き起こして処理したとき –

+0

まだ滑らかではありません –

+0

質問を更新し、他の人がこの「滑らかでない」動作を複製できるように質問を更新してください。 – pleft

関連する問題