gpt4 book ai didi

android - 将线程与媒体播放器一起使用

转载 作者:行者123 更新时间:2023-11-30 04:33:10 35 4
gpt4 key购买 nike

我正在努力让它按照我想要的方式工作,但我认为我在某个时候没有做到,但我试图修复其他东西并改变了一些东西并将其搞砸了。基本上我这个按钮是一个播放按钮。它应该通过另一个线程运行媒体播放器,以便它更快地使用react和缓冲。问题是播放到最后,我单击播放结束并继续运行 onCompletion。当我希望它重新开始并从头开始播放时。

public void onClick(View v) {

if(playClick%2==0){
song1.setBackgroundResource(R.drawable.button_pause);

try{
if(playClick==0){
playThread();
if(lastPlayedExists){
lastPlayed.release();
}
}

mp.start();
mpExists = true;
playClick++;

lastPlayed = mp;
lastPlayedExists=true;


mp.setOnCompletionListener(new OnCompletionListener(){

@Override
public void onCompletion(MediaPlayer media) {
mp.reset();
song1.setBackgroundResource(R.drawable.button_play);

}

});
}catch (NullPointerException e){

}

}
else if (playClick%2==1){
song1.setBackgroundResource(R.drawable.button_play);
mp.pause();

playClick++;
}

}
}
});

这是媒体播放器的线程

private void playThread(){
try{
new Thread(new Runnable() {
public void run() {

try {
mp.setDataSource(song);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {

e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}).start();
}catch(IllegalStateException e){

}

}

我已经在不同的测试中尝试使用具有 mp.reset()、mp.stop() 和 mp.release() 的 onCompletion 以及尝试 lastPlayed.release()。以及它们都不在那里,只是按钮更改和进度条重置。如果您知道如何解决此问题并使其重播,我将不胜感激。或者,如果您知道如何使线程停止并重新启动一些方法,以便我可以让它重新调用并重新执行线程,那也可以工作(atm 尝试时它会崩溃,因为线程已经启动)。谢谢,我感谢任何意见。

最佳答案

mp.setOnCompletionListener(new OnCompletionListener(){

@Override
public void onCompletion(MediaPlayer media) {
playClick=2;
song1.setBackgroundResource(R.drawable.button_play);

}

});

关于android - 将线程与媒体播放器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337780/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com