无法通过AVAudioPlayer中的URL播放声音

时间:2017-02-06 17:36:34

标签: ios objective-c avaudioplayer

我已经查看并应用了StackOverflow上提供的几乎所有解决方案,但它对我不起作用。这是我的代码:

NSString *path = [NSString stringWithFormat:@"http://www.schillmania.com/projects/soundmanager2/demo/_mp3/rain.mp3"];
        NSURL *soundUrl = [NSURL fileURLWithPath:path];

        _player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];

        [_player play];

基于类似问题中的其他答案,我也提出了@property (strong, nonatomic) AVAudioPlayer *player;但它仍然不起作用。我做错了什么?

根据评论,我也尝试了这个:

NSURL *url = [[NSURL alloc]initWithString:@"http://www.schillmania.com/projects/soundmanager2/demo/_mp3/rain.mp3"];
        AVPlayerItem *item = [[AVPlayerItem alloc]initWithURL:url];
        AVPlayer *pla = [[AVPlayer alloc]initWithPlayerItem:item];
        [pla play];

但它仍然没有玩!

2 个答案:

答案 0 :(得分:2)

正如@paiv所说,AVAudioPlayer不会从互联网上下载您的文件。 NSURL用于本地文件以及Internet资源,在这种情况下,声音必须是本地文件。您需要先下载文件,然后再播放。您需要下载文件(可能使用NSURLSessionNSURLSessionDownloadTask),然后在文件下载完成后播放声音。

编辑:

正如@Sneak在下面的评论中指出的,AVPlayer能够从网络传输音频,尽管我自己从未使用过该功能。

答案 1 :(得分:0)

之前我用过它,它对我来说很好用

https://github.com/tumtumtum/StreamingKit