gpt4 book ai didi

audio - QTKit 没有正确混合音轨

转载 作者:行者123 更新时间:2023-12-02 22:29:42 25 4
gpt4 key购买 nike

我正在尝试两次导入单个电影文件(2 个单独的 QTMovie 实例),将第二个实例的音轨偏移一秒,然后将其与第一个实例的音轨混合。它不混合。第一首轨道开始播放,然后停止,第二首轨道开始播放。当我使用 2 个具有不同内容的电影文件时不会发生这种情况,但是当我将文件复制到不同的名称时它仍然会发生!我创建了一个简单的示例项目来说明问题:http://cl.ly/0s2U2s3S2F0Y052D2v0O/InsertTrack.zip

我也很乐意为这个问题的解决方案付费!

最佳答案

解决方案不是很直接,因为这里发生了一些事情:

  • -[QTMovie insertSegmentOf(Movie|Track):timeRange:atTime:] 如果轨道的编码与已经存在的轨道的编码匹配,则将轨道添加到电影中。相反,它将片段插入到现有电影中,就像 QuickTime Player Pro 的“添加选择”所做的那样(即,如果您的电影是 AAAAA 并且您插入 bbb,那么您会得到 AAbbbAAA)。 (不可否认,这里的类引用不是很简洁……)
  • 不幸的是 -[QTMovie insertSegmentOfTrack:fromRange:scaledToRange:] 也不添加轨道 .相反,它的行为类似于 insertSegmentOfTrack:timeRange:atTime:增加了更改插入片段持续时间的能力。

  • 解决方法是使用 -[QTMovie insertSegmentOfMovie:fromRange:scaledToRange:] .

    对于您的示例,这将成为
    -(QTMovie *) composedMovie
    {
    NSDictionary *editableAttribute = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
    // load and prepare the base movie:
    QTMovie *composition = [QTMovie movieWithFile:fileName error:nil];
    [composition setMovieAttributes:editableAttribute];
    // load and prepare the insertion
    QTMovie *insertion = [QTMovie movieWithFile:insertionFileName error:nil]:
    [insertion setMovieAttributes:editableAttribute];
    // as you'll probably want to avoid adding the video tracks...
    NSArray *videoTracks = [insertion tracksOfType:QTMediaTypeVideo];
    for (QTTrack *track in videoTracks) {
    [insertion removeTrack:track];
    }
    // figure out the time-range
    QTTimeRange sourceRange = QTMakeTimeRange( QTZeroTime, [insertion duration] );
    QTTimeRange destinationRange = sourceRange;
    destinationRange.time = QTMakeTime( 1ll, 1l ); // use an offset of 1 second
    [composition insertSegmentOfMovie:insertion fromRange:sourceRange scaledToRange:destinationRange];
    return composition;
    }

    我知道,对于实际上非常简单的东西来说,这是一个相当大的引导代码......但这就是它的工作方式:-(

    关于audio - QTKit 没有正确混合音轨,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5355955/

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