An1*_*Ba7 9 iphone cocoa-touch objective-c mpmovieplayercontroller ios
我是iOS开发的初学者.我正在开发一个应用程序,我需要在MPMoviePlayerController中播放视频的大小.
我正在使用MPMoviePlayerController的属性naturalSize来获取播放视频的尺寸.
@property(nonatomic, readonly) CGSize naturalSize;
Run Code Online (Sandbox Code Playgroud)
但问题是,只有当视频在MPMoviePlayerController中播放时,我才能获得自然大小.
有没有一种方法可以在MPMoviePlayerController播放之前获取视频的尺寸.
- 编辑 -
我可以采取任何其他解决方法来解决这个问题吗?请帮忙.
mjw*_*ich 34
您可以使用AVURLAsset和阅读视频的尺寸AVAssetTrack,如下所示:
NSURL *mediaURL; // Your video's URL
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:mediaURL options:nil];
NSArray *tracks = [asset tracksWithMediaType:AVMediaTypeVideo];
AVAssetTrack *track = [tracks objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
然后使用AVAssetTrack's的naturalSize属性:
CGSize mediaSize = track.naturalSize;
Run Code Online (Sandbox Code Playgroud)
以这种方式获取视频元数据的好处是您可以立即访问它,而无需播放视频或等待加载视频.
MPMoviePlayerController加载视频元数据需要一些时间,因此您应该添加一个侦听器并等待加载naturalSize.像这样的东西:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieNaturalSizeAvailable:)
name:MPMovieNaturalSizeAvailableNotification
object:myMoviePlayer];
Run Code Online (Sandbox Code Playgroud)
然后movieNaturalSizeAvailable:,myVideoPlayer.naturalSize为您提供所需的价值,之后,您可以播放视频.
| 归档时间: |
|
| 查看次数: |
8725 次 |
| 最近记录: |