Android 使用MediaPlayer时音频播放不顺畅?

Android 使用MediaPlayer时音频播放不顺畅?,android,audio,Android,Audio,我使用了以下代码。 正在播放音频,但不流畅 public class MainActivity extends AppCompatActivity { MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.lay

我使用了以下代码。 正在播放音频,但不流畅

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();
     }

您应该在不同的线程上使用mediaplayer,而不是UI线程。然后它将播放顺畅。

添加一个
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();
 }

发布的代码非常简单,我想如果播放不顺畅,那么可能设备再现特定声音样本的能力有限。设备功能MediaPlayer.prepare()没有问题引发IOException,处理后导致IllegalStateException仍然不平滑OK,请更新您的问题并包含此声音示例,以便其他人可以复制此“不平滑”行为。使用prepareAsync()而不是prepare()。现在可以工作了