参见英文答案 >
How to play a music file using URL link in iPhone? 5个
我知道很多人之前已经问过这个问题,但是我不知道为什么这在x-code和objective c中我的应用程序不起作用!
我知道很多人之前已经问过这个问题,但是我不知道为什么这在x-code和objective c中我的应用程序不起作用!
基本上,我想通过网址在应用程序中播放音频.只需使用Apple网站上的测试音频,我的代码就是:
Nsstring *playString = @"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"; //Converts songURL into a playable NSURL NSURL *playURL = [NSURL URLWithString:playString]; AVAudioPlayer *backgroundMusicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:playURL error:&error]; if (backgroundMusicPlayer == nil) { NSLog(@"%@",[error description]); } else { [backgroundMusicPlayer preparetoPlay]; [backgroundMusicPlayer play]; }
它出现以下错误:
错误域= NSOsstatusErrorDomain代码= -43“无法完成操作.(Osstatus错误-43.)
当我google它时,我找不到任何东西.
有任何想法吗?我应该尝试其他音频流吗?或者有没有人有一个有效的例子?是因为我使用iPhone模拟器而不是真正的iPhone吗?
编辑:
请注意 – 当我说URL时,我的意思是来自一个真实的网站,比如“http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8”
我不想先下载这首歌,我希望能够在下载时播放它!谢谢
解决方法
使用AVPlayer从url播放mp3文件
-(void)playselectedsong{ AVPlayer *player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:urlString]]; self.songPlayer = player; [[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidplayToEndTimeNotification object:[songPlayer currentItem]]; [self.songPlayer addobserver:self forKeyPath:@"status" options:0 context:nil]; [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateProgress:) userInfo:nil repeats:YES]; [self.songPlayer play]; } - (void)observeValueForKeyPath:(Nsstring *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { if (object == songPlayer && [keyPath isEqualToString:@"status"]) { if (songPlayer.status == AVPlayerStatusFailed) { NSLog(@"AVPlayer Failed"); } else if (songPlayer.status == AVPlayerStatusReadyToPlay) { NSLog(@"AVPlayerStatusReadyToPlay"); } else if (songPlayer.status == AVPlayerItemStatusUnkNown) { NSLog(@"AVPlayer UnkNown"); } } } - (void)playerItemDidReachEnd:(NSNotification *)notification { // code here to play next sound file }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。