我是Soundboard应用程序的开发者。许多用户报告说,在他们的手机中,一些声音提前被切断了。我有一个Nexus One和一个HTC Tattoo,一切正常,我从来没有注意到手机的切断。
这是我的音频部分代码:
首先,我的主类中有一个MediaPlayer对象:
private MediaPlayer mp = null;
当我按下按钮时,这就是代码:
private OnClickListener onClickSound = new OnClickListener() {
public void onClick(View v) {
if(mp != null){
mp.stop();
mp.release();
mp = null;
}
mp = MediaPlayer.create(getBaseContext(), mp3id));
mp.start();
mp.setOnCompletionListener(completionListener);
}
};
这是completionListener:
MediaPlayer.OnCompletionListener completionListener = new MediaPlayer.OnCompletionListener(){
public void onCompletion(MediaPlayer mediaP) {
if(mp != null && !mp.isPlaying()){
mp.stop();
mp.release();
mp = null;
}
}
};
你们有什么线索吗?
问候
答案 0 :(得分:2)
在播放器加载所有媒体之前,您正在开始播放。使用setOnPreparedListener仅在玩家准备就绪后启动。