当用户点击按钮
时,我想从res / raw文件夹播放mp3文件我的代码如下:
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
MediaPlayer mp = MediaPlayer.create(MainActivity.this,
R.raw.click);
mp.start();
}
});
工作正常,但点击按钮后需要一些时间玩。拜托,有人,给我一个解决方案。 感谢
答案 0 :(得分:2)
加载时间取决于MediaPlayer的缓冲区大小(在固件中是硬编码的),并且没有任何可以更改它的方法。阅读更多here。
答案 1 :(得分:1)
这是媒体播放器buffer size的结果。
尝试使用SoundPool进行更具响应性的播放。您可以看到它的实现here。
SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 100);
HashMap<Integer, Integer> soundPoolMap soundPoolMap = new HashMap<Integer, Integer>();
soundPoolMap.put(soundID, soundPool.load(this, R.raw.click, 1));
使用soundPool.play(soundId, 1, 1, 1, 0, 0);
答案 2 :(得分:1)
选项1:
您可以在活动的onCreate()中初始化mediaPlayer,而不是创建媒体播放器,然后在按钮的 onClick 中调用 start()方法。 / p>
至于按钮点击实现,您只需要调用 mediaPlayer.start()。
选项2: 您可以使用Android提供的SoundPool API。与MediaPlayer API相比,这具有更低的延迟。 SoundPool主要用于播放短片。