我可以在 iOS 上使用 AV Foundation Framework 流式传输 .mp3 链接吗?

Posted

技术标签:

【中文标题】我可以在 iOS 上使用 AV Foundation Framework 流式传输 .mp3 链接吗?【英文标题】:Can I stream a .mp3-link with the AV Foundation Framework on iOS? 【发布时间】:2012-07-24 12:17:20 【问题描述】:

我正在为拥有自己收音机的人制作应用程序。 它只是一个流 URL(例如http://stream.domain.com/highquality.mp3) 我已经用 AV Foundation Framework 编写了代码,让它与一个简单的 .mp3 文件一起工作。

这是我的代码:

-(IBAction)play 
if(clicked == 0) 
    clicked = 1;
    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/test.mp3", [[NSBundle mainBundle] resourcePath]]];

    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    audioPlayer.numberOfLoops = 0;

    [audioPlayer play];
    [start setTitle:@"Stop" forState:UIControlStateNormal];

else 
    [audioPlayer stop];
    clicked = 0;
    [start setTitle:@"Start" forState:UIControlStateNormal];


我应该编辑什么?

编辑:上面的代码确实有效。我需要让它使用一个按钮来播放和停止它。我不想在我的设备上安装一个空洞媒体播放器。简单又漂亮。。

编辑 2:有些人没有找到我需要的东西:我需要进行编辑以使其与 .mp3 流一起使用(例如上面的流)。

【问题讨论】:

它是否有效?我使用 Media Player Framework 在我的最后一个应用程序中实现了一个 mp3 流,它也非常好用。 是的,它正在工作..我在我的应用程序中添加了一个文件:test.mp3,一切正常.. 如果它有效,你的问题到底是什么? 我想让它与流一起工作,作为我问题中的示例;-) 【参考方案1】:

你只需将一个 NSURL 传递给你的播放器对象,让它从那里播放流

-(IBAction)play 
if(clicked == 0) 
    clicked = 1;

    NSURL *url = [NSURL URLWithString:@"http://www.linktoyourstream.com"];

    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    audioPlayer.numberOfLoops = 0;

    [audioPlayer play];
    [start setTitle:@"Stop" forState:UIControlStateNormal];

【讨论】:

嗯,我试过了,但不适用于我的流.. 对流有要求吗?这是高质量的..(更新:低质量也不起作用..) 你是如何测试它的?尝试将 mp3 文件上传到网络服务器并调用该文件的 URL 以确保它不是流 我用模拟器测试过。今天晚上我可以用一个设备来测试它……我该怎么做? 您需要一个开发者帐户才能在您的设备上测试应用程序。 AVAudioPlayer 不应该用于流数据,initWithContentsOfURL 参数只接受本地存储​​文件的 url,而不是远程文件。另一种解决方案是让您下载文件,然后将文件的 url 传递给 AVAudioPlayer

以上是关于我可以在 iOS 上使用 AV Foundation Framework 流式传输 .mp3 链接吗?的主要内容,如果未能解决你的问题,请参考以下文章

Foundatio - .Net Core用于构建分布式应用程序的可插拔基础块

iOS 应用仅通过耳机播放声音

从 av 基础框架工作为 ios 开发自定义相机应用程序时,Camara 预览显示不正确?

在 iOS 上实时录制、修改音高和回放音频

使用microsoft绕过360等AV

播放音乐时,我的音频应用程序中没有收到通知或消息的声音 | AV音频播放器