Mar*_*ena 2 objective-c avplayer
我正在实现一个基本的音频播放器,以播放远程音频文件.文件格式为mp3.我写的代码在模拟器上工作正常但不适用于真实设备.然而,我在我的应用程序中使用相同的URL工作正常,如果我通过使用safari(在相同的真实设备上)加载它所以我真的没有得到缺少点.以下是我的代码:
self.musicPlayer = [AVPlayer playerWithURL:[NSURL URLWithString:urlTrack]];
[self.musicPlayer play];
Run Code Online (Sandbox Code Playgroud)
非常容易的事情.音乐播放器属性定义为
@property (nonatomic, retain) AVPlayer *musicPlayer;
Run Code Online (Sandbox Code Playgroud)
我也试过使用AVPlayerItem但结果是一样的.这是我用过的代码
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:urlTrack]];
self.musicPlayer = [AVPlayer playerWithPlayerItem:playerItem];
[self.musicPlayer play];
Run Code Online (Sandbox Code Playgroud)
最后我尝试使用下面的代码
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
}
}
}
Run Code Online (Sandbox Code Playgroud)
当调用方法observeValueForKeyPath时,播放器状态为1并且播放被激活但仍然不是声音.我尝试了几个文件,如:
http://www.nimh.nih.gov/audio/neurogenesis.mp3
http://www.robtowns.com/music/blind_willie.mp3
任何的想法?TNX
Swi*_*ude 15
检查文件名的拼写.该设备区分大小写,模拟器不是......
另外,检查你的振铃器是否关闭,当它关闭时你不会听到任何声音.为防止这种情况,请使用
NSError *_error = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &_error];
Run Code Online (Sandbox Code Playgroud)
就在您启动播放器之前
| 归档时间: |
|
| 查看次数: |
3055 次 |
| 最近记录: |