【发布时间】:2013-07-11 02:57:24
【问题描述】:
我正在实现一个基本的音频播放器来播放远程音频文件。文件为 mp3 格式。 我编写的代码在模拟器上运行良好,但在真实设备上无法运行。但是,如果我通过使用 safari(在同一台真实设备上)加载它,我在我的应用程序中使用的相同 url 可以正常工作,所以我并没有真正理解缺失的点。 以下是我的代码:
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,播放已执行,但仍然没有声音。 我尝试了几个文件,例如:
http://www.nimh.nih.gov/audio/neurogenesis.mp3
http://www.robtowns.com/music/blind_willie.mp3
有什么想法吗? 天呐
【问题讨论】:
标签: objective-c avplayer