gpt4 book ai didi

iphone - player.duration 在视频文件的 MPMoviePlayerController 中始终显示为零

转载 作者:技术小花猫 更新时间:2023-10-29 10:44:09 32 4
gpt4 key购买 nike

我正在使用这段代码在 mpmediaplayer Controller 中播放一个小视频

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] 
initWithContentURL:[NSURL fileURLWithPath:videostr]];

其中 videostr 是该视频文件的路径。

现在我需要获取该视频文件的长度,因为我正在使用这段代码。

length = player.duration;

但它总是显示 0.000。但是视频播放效果很好。

我正在通过谷歌搜索获取视频持续时间的代码来检查是否只有 player.duration

我也尝试了一些其他的代码

AVURLAsset *asset = [[[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:videostr] 
options:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], AVURLAssetPreferPreciseDurationAndTimingKey, nil]] autorelease];
NSTimeInterval duration;
if (asset)
duration = CMTimeGetSeconds(asset.duration) ;
NSLog(@">>>>>>>>>>>>>>>>>>>> %f", asset.duration);

即使它显示为零。任何人都可以帮助我。

提前致谢。

最佳答案

在内容实际可播放之前,您无法获得有用的持续时间。

注册加载状态变化:

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

一旦收到通知就评估状态:

- (void)MPMoviePlayerLoadStateDidChange:(NSNotification *)notification
{
if ((player.loadState & MPMovieLoadStatePlaythroughOK) == MPMovieLoadStatePlaythroughOK)
{
NSLog(@"content play length is %g seconds", player.duration);
}
}

关于iphone - player.duration 在视频文件的 MPMoviePlayerController 中始终显示为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9035995/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com