【问题标题】:Audio not playing smoothly by using MediaPlayer?使用 MediaPlayer 播放音频不流畅?
【发布时间】:2017-11-06 14:26:20
【问题描述】:

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

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

【问题讨论】:

  • 贴出的代码很简单,我猜如果播放不流畅可能是设备再现特定声音样本的能力有限。
  • 设备能力没有问题

标签: android audio


【解决方案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();
 }

【讨论】:

  • mediaPlayer.prepare() 抛出 IOException 并在处理时导致 IllegalStateException
  • 还是不流畅
  • 好的,所以更新你的问题并包含这个声音样本,以便其他人可以复制这种“不流畅”的行为。
  • 使用 prepareAsync() 而不是 prepare()。它现在工作正常。 :)
【解决方案2】:

您应该在不同的线程而不是 UI 线程上使用媒体播放器。然后它会播放流畅。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-22
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多