IOS - 流式传输和下载音频文件

Posted

技术标签:

【中文标题】IOS - 流式传输和下载音频文件【英文标题】:IOS - Streaming and Downloading an Audio File 【发布时间】:2014-06-10 05:56:46 【问题描述】:

我目前正在制作一个能够流式传输音乐文件的应用程序。问题是,我们的客户希望在我们流式传输音频文件时,流式传输的字节也将保存在本地存储中。这意味着流式传输的音频文件也将保存在设备的存储中。例如我有这个 m4a 文件流式传输,当用户停止流式传输音频文件时,流式传输的音乐文件将保存在设备的本地存储中以供将来使用。

这可能吗?如果是,我应该使用什么库?

谢谢。

【问题讨论】:

【参考方案1】:

是的,可以为此使用 AVFoundation 框架并播放您的音频。

首先从构建阶段部分拖动 AVFoundation 框架,然后像这样导入#import <AVFoundation/AVFoundation.h>

然后像这样在视图控制器实例的 .h 文件中声明 AVAudioPlayer

AVAudioPlayer *myAudioPlayer;

在 view controller.m 中输入这段代码

NSURL *fileURL = // your url.   
myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
myAudioPlayer.numberOfLoops = -1; //infinite loop
[myAudioPlayer play];

通过这种方式,您可以在 ios 设备中播放音频。希望它对您播放音频有所帮助

【讨论】:

我不明白这是如何回答这个问题的。问题是播放远程 URL(不是本地文件 URL)并在播放时将数据保存到本地文件中。这个答案似乎显示了如何播放本地文件 URL,并且可以很容易地适应删除 URL,但似乎没有提供任何保存下载数据的方法。有没有办法创建一个AVAudioPlayer 调用用户回调来获取文件数据,而不是下载文件本身?这将使实现变得非常简单。

以上是关于IOS - 流式传输和下载音频文件的主要内容,如果未能解决你的问题,请参考以下文章

从网络服务器流式传输音频

哪个 iOS 音频 API 设计用于以低延迟从磁盘流式传输大型本地音频文件?

iOS 使用基于 Cookie 的身份验证从服务器流式传输音频

具有不同长度的音频文件的 HTTP 实时流式传输

当从 uri 播放视频或音频时,它是流式传输还是完全下载并播放?

在移动浏览器上流式传输/播放音频文件