[英]Looped MediaPlayer Stopping in Thread
我試圖延遲播放一個很短的音頻文件。 我使用的代碼是:
mp = MediaPlayer.create(MainActivity.this, R.raw.audio);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.seekTo(0);
try {
mp.start();
android.os.SystemClock.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
我不使用MediaPlayer循環的原因是因為我想要延遲。 這段代碼運行良好,但是由於SystemClock.sleep部分,它鎖定了我的整個應用程序。 因此,我決定將其放入線程以使用本機sleep()函數:
Thread th = new Thread(){
MediaPlayer mp;
public void run() {
mp = MediaPlayer.create(MainActivity.this, R.raw.audio);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.seekTo(0);
try {
mp.start();
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}};
th.start();
現在發生的事情是它將播放文件一次並停止。 因此,我嘗試刪除了睡眠功能,這使其變得很奇怪。 文件播放了大約5或6次,然后停止了。 線程有時間限制嗎? 我覺得這很奇怪。 我希望音頻文件繼續播放。
如何在媒體播放器中使用循環功能。
嘗試添加mp.setLooping(true);
在mp.start();
之前mp.start();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.