如何以编程方式检查视频或音频文件格式是不是可以在 iPhone 中播放?

Posted

技术标签:

【中文标题】如何以编程方式检查视频或音频文件格式是不是可以在 iPhone 中播放?【英文标题】:How to check whether a video or audio file format is playable in iPhone programmatically?如何以编程方式检查视频或音频文件格式是否可以在 iPhone 中播放? 【发布时间】:2011-02-07 10:29:07 【问题描述】:

我有一些音频和视频文件存储在服务器中。我需要播放,但不知道iphone支持播放的服务器中存储的文件,

如何在开始播放之前检查该文件是否被 iPhone 支持,我正在使用 MPMoviePlayerController 播放文件。

【问题讨论】:

【参考方案1】:

您可以像这样从文件中创建 AVAsset:

NSURL *myURL = [NSURL URLWithString:@"http://www.myserver.com/myfile.mp4"];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:myURL];

然后您可以检查它的可播放属性:

if (asset.playable) 
    //Do Something

【讨论】:

【参考方案2】:

在播放它们之前,无法识别。当文件格式不正确时,电影播放器​​会抛出错误。 为此,首先您必须观察通知:MPMoviePlayerLoadStateDidChangeNotification,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerLoadStateChanged:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil];

当您收到此通知时,请检查玩家的加载状态。如果它的 loadState 是“MPMovieLoadStateUnknown”,那么你可以说在播放电影/音频时发生了一些错误。

【讨论】:

以上是关于如何以编程方式检查视频或音频文件格式是不是可以在 iPhone 中播放?的主要内容,如果未能解决你的问题,请参考以下文章

将图像组合成音频文件并以编程方式在android中制作视频文件

如何以编程方式检查手机当前是不是正在充电或正在使用电池?

OpenCV中如何播放avi文件的音频

如何以编程方式从 YouTube 视频中提取音频? [关闭]

如何在 QMediaPlayer 中获取媒体类型(视频或音频)?

检查音频系统是不是正在使用