2013-05-09 105 views
1

我使用AVAudioPlayer製作MP3播放器。我有多個MP3聲音,並希望逐一播放這些聲音。以下是我的應用程序的邏輯:用AVAudioPlayer播放多個聲音(一個接一個)

///// For playing 1st sound 

mp3Player = [[AVAudioPlayer alloc] initWithContentsOfURL:url1 error:nil]; 
[mp3Player prepareToPlay]; 
[mp3Player play]; 


///// For playing 2nd sound 
mp3Player = nil; 
mp3Player = [[AVAudioPlayer alloc] initWithContentsOfURL:url2 error:nil]; 
[mp3Player prepareToPlay]; 
[mp3Player play]; 


///// For playing 3rd sound 
mp3Player = nil; 
mp3Player = [[AVAudioPlayer alloc] initWithContentsOfURL:url3 error:nil]; 
[mp3Player prepareToPlay]; 
[mp3Player play]; 

etc... 

只是想知道:我玩下一個聲音之前無相應的播放器或Alloc AVAudioPlayer。在這個邏輯中是否有任何性能(速度)或內存(泄漏)問題? (我正在使用ARC)。如果是這樣,是否有任何方法可以一次性分配AVAudioPlayer,並接受指向這些聲音的不同URL?提前致謝。

回答

4

我想下面的鏈接可以幫助你:

How to play multiple audio files in sequence by loop in AVAudioPlayer?

在其audioPlayerDidFinishPlaying使用後一個完成播放下一首歌曲。

+0

感謝您的鏈接。 Unnati。但是我認爲這些答案的鏈接示例代碼的基本邏輯應該與我的相同:在播放方法中的下一首歌曲之前再次執行alloc AVAudioPlayer,委託-audioPlayerDidFinishPlaying調用該方法。所以對AVAudioPlayer的分配仍然會被多次調用。 – stspb 2013-05-09 05:02:34

+0

thnx它幫助了我 – Mohit 2014-05-12 14:12:37