首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS -从NSFileHandle或NSPipe创建iOS

iOS -从NSFileHandle或NSPipe创建iOS
EN

Stack Overflow用户
提问于 2011-11-23 03:41:40
回答 1查看 1.9K关注 0票数 8

我正在通过网络接收编码的音频流,但是有一堆数据混合在一起,所以我需要接收数据包,剥离音频,然后播放音频。

AVAudioPlayer可能是最好的工具,也可能不是最好的工具,但这是我目前正在追求的道路,它想要来自NSData或NSURL的数据。NSData不会工作,因为它是一个数据流,我希望它在到达时立即启动并继续播放。我的想法是:

代码语言:javascript
复制
NSPipe *pipe = [[NSPipe alloc] init];
NSFileHandle *writeHandle = [pipe fileHandleForWriting];
NSFileHandle *readHandle = [pipe fileHandleForReading];

// in network reception thread...
NSData *audioData = [packet getAudioData];
[writeHandle writeData:audioData];

// in audio thread...
NSURL *url = [[NSURL alloc] init];
[url setResourceValue:NSURLFileResourceTypeNamedPipe 
               forKey:NSURLFileResourceTypeKey 
                error:&error];
// Connect the readHandle
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc]
                               initWithContentsOfURL:url
                                               error:&error];

但是,我不知道如何将readHandle传递给URL。如何从现有的NSFileHandle创建NSURL?有没有更好的方法来完全解决这个问题?有没有一种方法可以将数据写入可以成为NSURL的东西?

唯一真正的要求是我可以播放尽可能接近实时的音频。我不想让数据在播放前排队十分之一秒。

EN

回答 1

Stack Overflow用户

发布于 2013-04-09 16:42:05

检索NSFileHandle的网址是不可能的,因为并不是所有的句柄都有相应的网址。你的例子就是这样一个例子。

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

https://stackoverflow.com/questions/8232747

复制
相关文章

相似问题

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