2012-08-08 91 views
3

我需要在iOS中显示音频或视频内容。如何在iOS中播放NSData音频或视频?

不幸的是,我没有收到作为URL的音频/视频,而是作为内容类型(MIME类型)的NSData

它使用的时候似乎UIWebView无法正常播放的音频/视频数据的loadData:MIMEType:textEncodingName:baseURL:使用loadRequest:(感谢苹果为这个美好的控制器),只有当

,所以我想NSData的保存到临时文件 ,但我没有文件扩展名(只是MIME类型)。

完成此操作的最佳方法是什么? 也许使用其他一些iOS控件来实现音频/视频播放器?

在此先感谢。

+1

您不需要将扩展​​名保存为临时文件。只需保存它没有扩展名,和e。 G。 AVAudioPlayer会从它的内容中找出它的文件类型。 – 2012-08-08 09:17:47

+0

我需要支持音频和视频内容,因此它只能解决音频部分。使用AVAudioPlayer意味着我需要使用按钮来实现自己的“播放器”吗? – HyBRiD 2012-08-09 10:32:21

回答

0

如果有人想知道这里是解决方案:

您需要使用UTType functions 在一个名为MobileCoreServices框架声明。 其基本思想是从MIME类型获取UTI,然后从UTI获得扩展名:

MIME类型 - > UTI - >文件扩展名。

MIME类型到UTI转换的示例可以在here找到。

0

做出MAPPS MIME类型来适当延长

-(NSString *)getExtenstionFromMimeType:(NSString *)mimeType 
{ 

    if ([mimeType isEqualToString:@""video/mp4"]) 
     return @"mp4"; 
    else if (.....) 
     and so on 

} 

,你也可以使用MPVideoPlayerController播放音频视频的方法,但你也将需要源媒体URL或本地文件路径

+0

该解决方案要求我将MIME维护到扩展映射,并考虑到文件类型和MIME类型有很多重复,这是一团糟。 – HyBRiD 2012-08-09 10:28:11