And*_*rew 14 android android-mediaplayer
我正在尝试使用android MediaPlayer类播放一些声音.
这是代码
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(context, Uri.parse(soundUrl));
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setLooping(false);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.i(LOGTAG, "onComplete hit");
mp.stop();
mp.release();
}
});
mp.prepare();
mp.start();
Run Code Online (Sandbox Code Playgroud)
此代码在服务中运行,但由于某种原因,声音播放正常,但放入onCompletion的任何内容似乎都没有触发.然后我在logcat中收到媒体播放器未发布的消息.我对这个问题感到茫然.
我在galaxy nexus 4.0.4 stock rom上运行这个测试.
我还注意到声音最后会被剪掉.
aja*_*n81 33
它实际上很简单(但很傻).调用start()后设置监听器,如下所示:
ediaPlayer mp = new MediaPlayer();
mp.setDataSource(context, Uri.parse(soundUrl));
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setLooping(false);
mp.prepare();
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.i(LOGTAG, "onComplete hit");
mp.stop();
mp.release();
}
});
Run Code Online (Sandbox Code Playgroud)
我是这样的:
video.setOnCompletionListener(this);
IntroClip.execute(video);
}
@Override
public void onCompletion(MediaPlayer mp){
Button LoginButton;
Button CreateAccount;
Button RecoverPass;
setContentView(R.layout.loginmenu);
Spin = (ProgressBar)findViewById(R.id.Spinner);
mp.release();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10464 次 |
| 最近记录: |