首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AVAudioPlayer中播放“http:/.AVAudioPlayer”

如何在AVAudioPlayer中播放“http:/.AVAudioPlayer”
EN

Stack Overflow用户
提问于 2013-06-07 01:58:28
回答 2查看 3.9K关注 0票数 1

我不能播放mp3音频文件。

代码语言:javascript
复制
URL_PATH = @"http://...../.…./A1.mp3";

NSError *错误;

代码语言:javascript
复制
player = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL URLWithString:URL_PATH] error:&error];
if (error) 
{
    NSLog(@"error:%@",error.localizedDescription);
}

if (player ==nil)
{
    NSLog(@"nil");
}
else 
{
    NSLog(@"playing");
    [player play];
}  

错误代码:

代码语言:javascript
复制
error:The operation couldn’t be completed. (OSStatus error -43.)
nil

我该怎么做?请告诉我提示。先谢了!

EN

回答 2

Stack Overflow用户

发布于 2013-06-07 03:10:26

您正在使用错误的播放器播放从网络流中捕获的音频。见苹果关于AVAudioPlayer的文档

苹果建议您使用这个类来播放,除非您正在播放从网络流中捕获的音频,或者需要非常低的I/O延迟。有关音频技术的概述,请参阅多媒体编程指南中的音视频起点和“使用音频”。

使用AVAudioPlayer的一种方法是获取音频数据并将其放入NSData中。然后你可以在你的AVAudioPlayer通过initWithData:error:。另外,不要将代码放在主队列中。否则,它将阻止用户界面对用户的输入做出反应。

代码语言:javascript
复制
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSURL *mp3URL = [NSURL URLWithString:@"http://zhangmenshiting.baidu.com/data2/music/44799433/4479927746800128.mp3?xcode=dbff90a141d5d136fdc7275fdc3fae126077a44adc974ad8"];
    NSData *data = [NSData dataWithContentsOfURL:mp3URL];
    self.audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:NULL];
    [self.audioPlayer play];
});
票数 7
EN

Stack Overflow用户

发布于 2013-06-07 09:03:05

AVAudioPlayer是对的,它不适用于流媒体音频。它用于播放音频文件和内存中的数据。这就是为什么您需要用数据而不是URL来插入它。

这是苹果的答案(你可以在这里找到index.html ):

File://).类不支持基于HTTP的流音频。那就是,一条本地的道路。

如果您寻找音频流,您可以测试该音频流光器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16975115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档