从 NSData 中查找视频类型

Posted

技术标签:

【中文标题】从 NSData 中查找视频类型【英文标题】:Finding video type from NSData 【发布时间】:2014-11-06 12:18:38 【问题描述】:

我正在从第三方提供的 URL 加载视频。 URL 上没有文件扩展名(或文件名)(因为它是一个模糊的 URL)。我可以从中获取数据(以 NSData 的形式)并将其加载到视频播放器中并正常显示。

我想将此数据保存到文件中。但是,我不知道数据是什么格式(mp4,wav)?我认为它是 mp4(因为它是来自网络的视频),但是否有一种程序化的方式可以确定?我查看了 *** 和文档,但找不到任何东西。我只是想知道文件扩展名是图像还是视频。

【问题讨论】:

除了检查内容类型之外,几乎所有照片、音频和视频文件格式(在前 8-16 个字节中)都以某种可以检查的“签名”开头,或者使用ad-hoc 代码(检查一些文件并找出答案)或您可能在网络上可以找到的固定例程(如果 ios 没有内置)。 你检查这个链接了吗....***.com/questions/26751051/…***.com/questions/10713419/… 我已经检查了这些链接。但我想要下载的 NSData 格式或文件扩展名。它可以是音频视频或图像。对于图像,我可以检查格式或扩展名。但是对于视频和音频,我没有得到正确的检查方法。 【参考方案1】:

您应该检查服务器返回的内容类型:

- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)theResponse
  
    NSString* content_type = [[(NSHTTPURLResponse*)theResponse allHeaderFields] valueForKey:@"Content-Type"];

    //content_type might be image/jpeg, video/mp4 etc.
  

【讨论】:

我正在使用异步块来获取数据。所以这对我来说不起作用。

以上是关于从 NSData 中查找视频类型的主要内容,如果未能解决你的问题,请参考以下文章

如何从 NSData 播放视频

在进程的内存转储中查找视频文件

iOS 5 - ALAssets 库 - 将视频的 URL 从资产转换为 NSDATA 文件

如何从图像选择器中获取 NSData?

从 Windows 窗体中查找输入类型控件

SIGABRT:后台会话不支持从 NSData 上传任务