gpt4 book ai didi

iphone - OSStatus 错误 - 12780 调用 insertTimeRange :ofTrack:atTime:error: of AVMutableCompositionTrack for the second time 时

转载 作者:行者123 更新时间:2023-11-28 21:40:01 25 4
gpt4 key购买 nike

首先我必须说我喜欢这个论坛,它帮助了我很多时间。我有一个问题,但我在任何地方都找不到答案,所以这是我在这里的第一个问题。

我的问题是:

我有一个由 AVPlayerItem 表示的视频,用户可以使用将视频剪切到 slider 左侧的 cutBefore 按钮编辑视频开始时间

负责剪辑视频的方法如下:

- (void)CutBeforeAction { 

AVMutableComposition *composition = [AVMutableComposition composition];

// Get the audio and video tracks of the video
AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
AVMutableCompositionTrack *compositionAudioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];

// Calculate the new duration
CMTime currStartTime = _player.currentItem.currentTime;
CMTime endTime = _player.currentItem.duration;
CMTimeRange range = CMTimeRangeFromTimeToTime(currStartTime, endTime);

// Insert the new duration to the tracks
NSError *error = nil;
[compositionVideoTrack insertTimeRange:range
ofTrack:[[_player.currentItem.asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]
atTime:kCMTimeZero
error:&error];

[compositionAudioTrack insertTimeRange:range
ofTrack:[[_player.currentItem.asset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0]
atTime:kCMTimeZero
error:&error];
// Create a new AVPlayerItem with the new composition
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:composition];
[self setPlayerItem:item];
[_player replaceCurrentItemWithPlayerItem:item];

// change the player location to the beginning of the video
[_player seekToTime:CMTimeMakeWithSeconds(0, 1)];
[self syncTimeLabel];
[self syncScrubber];

第一次运行 - (void)cutBefore 方法时它工作正常,当我第二次运行它时(视频已经编辑过一次)

[compositionVideoTrack insertTimeRange:range 
ofTrack:[[_player.currentItem.asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0]
atTime:kCMTimeZero
error:&error];

[compositionAudioTrack insertTimeRange:range 
ofTrack:[[_player.currentItem.asset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0]
atTime:kCMTimeZero
error:&error];

方法返回以下错误:

操作无法完成。 (OSStatus 错误 -12780。)

我试图寻找该错误代码的含义,但几乎一无所获。

感谢帮助

最佳答案

我遇到了这个问题,问题出在我计算此方法的 timeRangestartTime 参数时。 timeRange.start.valuestartTime.value 必须为正数。也许我迟到的回答会对某人有所帮助。

关于iphone - OSStatus 错误 - 12780 调用 insertTimeRange :ofTrack:atTime:error: of AVMutableCompositionTrack for the second time 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5961654/

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