3

我需要在我的应用程序中发送和接收音频文件。为了提高性能并保持开放连接,我希望流式传输这些数据。

我已经根据问题的答案查看了诸如HTTP Live StreamingAudioStreamer 之类的东西。但是,这些似乎是用于连续流式传输,单向(读取)。而我正在发送一个有限的音频文件(> 10 秒),然后收到一个回复​​。

我熟悉 NSURLConnection 并查看了这个答案。但同样,这使用了连续的 1-way 流。

我将不胜感激有关架构的任何建议以完成上述工作以帮助我入门。

4

4 回答 4

2

一般来说,AVAudioPlayer使用音乐播放。但是,此框架不支持流式传输。AVPlayer因此可以实现使用流式传输。通常开发者的AVPlayer目的只知道可以播放视频,还可以播放音乐。

我看下面推荐Apple的示例代码。这是使用AVPlayer

缝合流播放器

我上传到 myServer Tested,.mp3 也很完美

3G、wifi 在两种环境下都经过测试。虽然是示例代码,但令人惊讶的是它完美地工作。mp3 文件上传您的服务器。立即尝试测试。会运作良好。

如果你想在后台播放,下面的代码不要忘记:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    AVAudioSession* audio = [[AVAudioSession alloc] init];
    [audio setCategory: AVAudioSessionCategoryPlayback error: nil];
    [audio setActive: YES error: nil];

    return YES;
}
于 2012-08-10T15:39:37.947 回答
1

对于从服务器播放,我的 Audjustable 项目 ( https://github.com/tumtumtum/audjustable ) 修复了原始 AudioStreamer 项目中的大部分问题,并包括无缝播放和解耦音频数据源,以允许诸如错误恢复、加密之类的事情等等。完全开源...

如果您想将音频数据上传到服务器,您可以通过多种方式完成,但 NSURLConnection 似乎是最简单的方法。

于 2013-12-01T15:42:36.213 回答
0

是的,到目前为止,我使用和搜索过的 AudioStreamer 都非常好。

但是使用 AudioStreamer,在尝试在后台流式传输时需要进行某些更改,当您创建 2 个实例时,还有更多......

https://github.com/mattgallagher/AudioStreamer/

您也可以在我的个人资料中找到 2-3 个关于相同问题的问题...

于 2012-08-10T17:44:46.013 回答
0

我认为您要做的是从非流式传输的服务器上传和下载文件。对于下载,您可以使用NSURLConnection / NSURLRequest。对于上传,您可以使用 HTTP POST方法。还有一个旧的第三方库,称为 ASIHTTPRequest。互联网上有很多关于这些主题的示例。

于 2012-08-13T10:49:57.043 回答