2
我正在實現基本音頻播放器以播放遠程音頻文件。文件格式爲mp3。 我寫的代碼在模擬器上工作正常,但不適用於真實設備。然而,我在我的應用程序中使用的相同的url工作正常,如果我使用safari加載它(在相同的真實設備上),所以我沒有真正得到缺失的一點。 以下是我的代碼:AVPlayer在模擬器上播放,但不在真實設備上
self.musicPlayer = [AVPlayer playerWithURL:[NSURL URLWithString:urlTrack]];
[self.musicPlayer play];
東西非常容易。音樂播放器屬性被定義爲
@property (nonatomic, retain) AVPlayer *musicPlayer;
我也試過使用AVPlayerItem,但結果是一樣的。這裏是代碼我用
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:urlTrack]];
self.musicPlayer = [AVPlayer playerWithPlayerItem:playerItem];
[self.musicPlayer play];
最後我嘗試使用下面
self.musicPlayer = [AVPlayer playerWithURL:[NSURL URLWithString:urlTrack]];
NSLog(@"Player created:%d",self.musicPlayer.status);
[self.musicPlayer addObserver:self forKeyPath:@"status" options:0 context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
NSLog(@"Player created:%d",self.musicPlayer.status);
if (object == self.musicPlayer && [keyPath isEqualToString:@"status"]) {
if (self.musicPlayer.status == AVPlayerStatusReadyToPlay) {
[self.musicPlayer play];
} else if (self.musicPlayer.status == AVPlayerStatusFailed) {
// something went wrong
}
}
}
代碼當方法observeValueForKeyPath調用播放器狀態1和該劇exectuted但仍然不健全。 我試了幾個文件,如:
http://www.nimh.nih.gov/audio/neurogenesis.mp3
http://www.robtowns.com/music/blind_willie.mp3
任何想法? Tnx
我試着按你的建議,我的球員init和沒有問題之前添加以下兩行之前。現在,我嘗試使用我的個人iPhone和不同於iPad和我面臨此問題的網絡的網絡。至少我可以說代碼工作正常。我將在iPad上進行同樣的測試。但我不明白爲什麼,當我在iPad上試用這個相同的代碼時,我用它進行開發,它不起作用,但是同樣的mp3網址試圖在Safari上運行(總是在iPad上)。 –
我想我找到了它 - 你沒有分配你的播放器,所以它馬上被釋放。試試'self.musicPlayer = [[AVPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:urlTrack]];' - 另外,在[[self]之前加上'[self.musicPlayer prepareToPlay]'。 musicPlayer play]' – Swissdude
這個問題可以通過我發佈的代碼來解決。通過添加它,它工作正常。 Tnx :) –