如何流式传输mp3文件(iOS)

时间:2014-02-15 03:25:33

标签: ios iphone objective-c

我在SO上发现了很多相关的问题,但是因为我很新,或者因为它不适合我的问题,我找不到成功的方法。

所以,我想做的就是直接在iOS设备上播放存储在外部服务器上的音频文件(在我的情况下是iPhone)

我在网上尝试了不同的解决方案,这是我到现在为止所得到的。

NSString* resourcePath = @"http://www.chiptape.com/chiptape/sounds/medium/laugh.mp3"; //your url
NSURL *url = [[NSURL alloc]initWithString:resourcePath];

NSError *error;

audioPlayer = [[AVAudioPlayer alloc] initWithURL:url error:&error];

audioPlayer.delegate = self;
[url release];

[audioPlayer prepareToPlay];
[audioPlayer play];

编译器向我显示此错误:

  

'AVAudioPlayer'没有可见的@interface声明选择器   'initWithURL:错误:

我对我的代码一点也不确定,并且希望你的伙伴们知道我昨天已经开始编写iOS代码了,所以我不会错过一些如此明显的教程/帖子没有提到的东西。

另外,我已导入库AVFoundation并将其导入我的.h文件。 我也在我的.h文件中声明了这个

AVAudioPlayer *audioPlayer;

我希望有一种简单的方法可以在iOS上传输音频文件,因为它提供了android / java

谢谢,如果您需要更多详细信息,我会更新我的帖子。

2 个答案:

答案 0 :(得分:0)

我最近正在使用它。

AVAudioPlayer无法使用音频流。事实上,没有一种简单的方法可以做到这一点。

你需要学习一些Core Audio的东西,获取媒体的原始数据,在audioQueue(audioToolBox框架)中播放它们。实时音频处理不是一件简单的工作,它充满了c级api和如此多的肮脏工作,不要急,玩得开心:))

查看图书Learning Core Audio和此开源audio streamer

如果您需要更多帮助,请与我联系。

答案 1 :(得分:0)

试试这个:

NSString* resourcePath = @"http://www.chiptape.com/chiptape/sounds/medium/laugh.mp3"; //your url
NSURL *audioURL = [NSURL URLWithString:resourcePath];
AVAudioPlayer *audioPlayer = [[[AVAudioPlayer alloc] initWithContentsOfURL: audioURL  error:&error]autorelease];       
[audioPlayer play];