【发布时间】:2018-11-02 19:21:34
【问题描述】:
我制作了一个小应用程序来使用 MediaPlayer 在 android 中练习音频播放,该应用程序运行良好,但单击播放按钮后有 1 秒的小延迟,这很明显,我注意到这仅在启动音频文件时发生,暂停时,它立即恢复,没有延迟,我四处搜索,看到人们建议使用 SoundPool 而不是 MediaPlayer,但是当我的应用正在播放一首完整的歌曲时,建议将 SoundPool 用于短音频剪辑,这种延迟的原因是什么?是否有解决此问题的方法或解决方法?
这是我的代码:
私有媒体播放器 mMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMediaPlayer = MediaPlayer.create(this,R.raw.this_is_america);
Button btnPlay = findViewById(R.id.btnPlay);
Button btnPause = findViewById(R.id.btnPause);
Button btnStop = findViewById(R.id.btnStop);
btnPlay.setOnClickListener(this);
btnPause.setOnClickListener(this);
btnStop.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnPlay:
Toast.makeText(getApplicationContext(), "Playing song",
Toast.LENGTH_SHORT).show();
mMediaPlayer.start();
break;
case R.id.btnPause:
Toast.makeText(getApplicationContext(), "Pausing song",
Toast.LENGTH_SHORT).show();
mMediaPlayer.pause();
break;
case R.id.btnStop:
Toast.makeText(getApplicationContext(), "Song stopped",
Toast.LENGTH_SHORT).show();
mMediaPlayer.reset();
mMediaPlayer = MediaPlayer.create(this,R.raw.this_is_america);
break;
}
}
更新:原来是 mp3 音频文件在开始时有静默暂停,尝试了另一首歌曲,它工作正常,没有明显的延迟,谢谢 greeble31 建议检查。
【问题讨论】:
-
愚蠢的问题,但你确定暂停不仅仅是 .mp3 文件开头的沉默吗?
标签: java android audio android-mediaplayer