gpt4 book ai didi

ios - AVFoundation - 视频无法在带有 AVplayer 的 AVMutablecomposition 中播放

转载 作者:行者123 更新时间:2023-11-28 17:39:11 33 4
gpt4 key购买 nike

我正在使用 AVMutablecomposition 使用 AVplayer 播放在线视频文件。当我在浏览器上播放视频时,视频播放效果非常好,但我无法在我的 iPad 上播放它。

代码如下:

self.composition = [AVMutableComposition composition];

NSURL *urlVideo = [NSURL URLWithString:@"{video location}"];
AVURLAsset *videoAsset = [[AVURLAsset alloc]initWithURL:urlVideo options:nil];

AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];

NSError *error = NULL;

AVAssetTrack *videoTrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo]objectAtIndex:0];
CMTimeRange x = CMTimeRangeMake(kCMTimeZero, [videoAsset duration]);
[compositionVideoTrack insertTimeRange:x ofTrack:videoTrack atTime:kCMTimeZero error:nil];

设置AVPlayer的代码:

AVPlayerItem *playerItem = [[AVPlayerItem alloc]initWithAsset:composition];

self.player = [[AVPlayer alloc]initWithPlayerItem:playerItem];
AVPlayerLayer *layerVideo = [AVPlayerLayer playerLayerWithPlayer:self.player];
layerVideo.frame = self.view.layer.bounds;
layerVideo.backgroundColor = [UIColor orangeColor].CGColor;
layerVideo.position = CGPointMake(1024/2, 768/2-10);

[self.view.layer addSublayer:layerVideo];
[self.player play];

如果我使用“AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:videoAsset];”而不是“AVPlayerItem *playerItem = [[AVPlayerItem alloc]initWithAsset:composition];”然后我可以看到正在播放的视频。

有人知道如何使用带有 AVMutablecomposition 的 AVplayer 播放视频吗?

最佳答案

您的代码缺少一些错误检查,但它按原样工作。

除非您使用的是 iPad,否则此行会将播放器发送到屏幕外:

layerVideo.position = CGPointMake(1024/2, 768/2-10);

如果是这种情况,请尝试使用正确的位置。

关于ios - AVFoundation - 视频无法在带有 AVplayer 的 AVMutablecomposition 中播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8834556/

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