我在MediaPlayer中播放多個mp3文件時遇到問題for android ...它一起播放所有文件並創建mess.I想要解決方案,它只是播放每個文件時間,然後在其他文件播放後。在MediaPlayer中一個接一個地播放多個文件在android中
0
A
回答
1
有各種MediaPlayer的回調使用他們喜歡的:
http://www.androidadb.com/class/on/OnCompletionListener.html
mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer theMediaPlayer) {
mParent.playNextAudio();
mParent = null;
}
5
你可以嘗試這樣的事情:
public class MainActivity extends Activity implements MediaPlayer.OnCompletionListener
{
int[] tracks = new int[3];
int currentTrack = 0;
private MediaPlayer mediaPlayer = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tracks[0] = R.raw.say1;
tracks[1] = R.raw.say2;
tracks[2] = R.raw.say3;
mediaPlayer = MediaPlayer.create(getApplicationContext(), tracks[currentTrack]);
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.start();
}
public void onCompletion(MediaPlayer arg0) {
arg0.release();
if (currentTrack < tracks.length) {
currentTrack++;
arg0 = MediaPlayer.create(getApplicationContext(), tracks[currentTrack]);
arg0.setOnCompletionListener(this);
arg0.start();
}
}
}
+0
這隻執行前兩個音頻文件,第三個不播放。爲什麼會發生這種情況,你有任何解決辦法嗎? –
3
我用下面的代碼這樣做:
private ArrayList<MediaPlayer> mPlayerList = new ArrayList<MediaPlayer>();
public void playSound4FileList(ArrayList<String> fileList)
{
mPlayerList.clear();
for (String fileName : fileList)
{
try {
MediaPlayer mPlayerT = new MediaPlayer();
AssetFileDescriptor descriptor = context.getAssets().openFd(fileName);
mPlayerT.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
mPlayerT.prepare();
mPlayerT.setVolume(1f, 1f);
mPlayerT.setLooping(false);
mPlayerList.add(mPlayerT);
} catch (Exception e) {
}
}
for (int i=0; i<mPlayerList.size()-1; i++) //Do not include last element
{
mPlayerList.get(i).setNextMediaPlayer(mPlayerList.get(i+1));
}
mPlayerList.get(0).start();
}
+0
調用需要API級別16:android.media.MediaPlayer#setNextMediaPlayer! – yoosha
相關問題
- 1. 在android中一個接一個地播放音頻文件
- 2. 在Java中一個接一個地播放WAV文件
- 3. 我怎樣才能在android中的mediaPlayer播放2個或更多的MP3文件一個接一個?
- 4. 同時播放2個MediaPlayers一起在Android中只播放一個MediaPlayer?
- 5. 無間斷地播放多個視頻一個接一個android
- 6. 在android中播放文件mediaplayer
- 7. 一個接一個地播放MediaElements UWP
- 8. 一個接一個地播放音頻
- 9. 一個接一個地播放動畫
- 10. 一個接一個地播放音樂
- 11. 視頻一個接一個地播放
- 12. 如何將文件一個接一個地放在flume spooldir中?
- 13. 在一個訂單中播放多個音頻文件Xcode 4.3
- 14. 一次播放一個MediaPlayer實例
- 15. One Android MediaPlayer對象一次播放多個聲音
- 16. 無法在Android中使用MediaPlayer播放本地mp3文件
- 17. 一個一個播放音頻文件?
- 18. 的MediaPlayer在背景中播放的音頻和下一個
- 19. 播放MIDI文件中的一個的AsyncTask在Android
- 20. 在Android中播放下一個或上一個視頻
- 21. 如何在Android我們可以一個接一個地播放音頻?
- 22. 如何播放音樂歌曲一個接一個地放在iphone的資源文件夾中
- 23. Android:在使用MediaPlayer之後播放多文件文件
- 24. 如何在jsp數組中一個接一個地播放視頻
- 25. 如何在Python中一個接一個地運行多個可執行文件
- 26. 在MediaPlayer中播放.swf文件?
- 27. 如何一個一個地播放audiofiles
- 28. 使用另一個級別的JavaFX mediaplayer播放音頻文件
- 29. 播放多個音頻文件rails'audio_tag:有沒有辦法播放一個播放器中的所有文件?
- 30. 如何一個接一個播放多個視頻?
String PATH_TO_FILE =「/ sdcard/my_downloads /」+ filenum +「.mp3」; mediaPlayer = new MediaPlayer(); 嘗試mediaPlayer.setDataSource(PATH_TO_FILE); mediaPlayer.prepare(); mediaPlayer.start(); mediaPlayer.setOnCompletionListener(新OnCompletionListener(){ 公共無效onCompletion(MediaPlayer的熔點){// TODO 字符串路徑= 「/ SD卡/ my_downloads/」+ FILENUM +「 MP3」 ; MEDIAPLAYER =新的MediaPlayer(); 嘗試{ mediaPlayer.setDataSource(路徑); mediaPlayer.prepare(); mediaPlayer.start();} CATC h(例外e){TODO:處理異常 } filenum ++; } }); –
我實現了這個,但是...它不能正常工作......它只播放前兩個文件 –
我有相同的,它只播放前兩個文件。您似乎不得不向MediaPlayer添加oncompletionlistener。不知道如何雖然... – dorien