[英]Audio streaming in ios using AVPlayer
我正在嘗試開發一個應該從特定鏈接流式傳輸音頻的小應用程序。 我為此使用 AVPlayer,但我不知道為什么它不起作用。 試過谷歌,但那里似乎沒有什么相關的。 請幫助..謝謝
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://108.166.161.206:8826/stream.mp3"];
self->playerItem = [AVPlayerItem playerItemWithURL:url];
self->player = [AVPlayer playerWithPlayerItem:playerItem];
self->player = [AVPlayer playerWithURL:url];
[player play];
}
不知道為什么你首先用一個 playeritem 初始化你的播放器,然后用一個 NSURL 初始化它。 無論如何,這是要走的路:
-(void) viewDidLoad{
player = [[AVPlayer alloc] initWithURL:
[NSURL URLWithString:@"http://xxx/yourfile.mp3"]];
[player addObserver:self forKeyPath@"status" options:0 context:nil];
}
- (void) observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if (object == player && [keyPath isEqualToString:@"status"]) {
if (player.status == AVPlayerStatusReadyToPlay) {
[player play];
}
if (player.status == AVPlayerStatusFailed) {
NSLog(@"Something went wrong: %@", player.error);
}
}
}
AV Foundation Programming Guide應該是了解 AVPlayer 的工作原理的良好起點
這行不是必需的self->player = [AVPlayer playerWithURL:url];
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://108.166.161.206:8826/stream.mp3"];
self->playerItem = [AVPlayerItem playerItemWithURL:url];
self->player = [AVPlayer playerWithPlayerItem:playerItem];
[player play];
}
也不要忘記將 NSAllowsArbitraryLoads 鍵添加到 info.plist
你可以用 AVAudioPlayer 試試這個:
NSData *fileData = [NSData dataWithContentsOfURL:
[NSURL URLWithString:@"http://108.166.161.206:8826/stream.mp3"]];
NSError *error = nil;
self.player = [[AVAudioPlayer alloc] initWithData:fileData error:&error];
[self.player play];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.