5

AVMutableAudioMixInputParameters の setVolumeRampFromStartVolume メソッドを使用して、AVPlayer のボリュームを 0 にフェードしようとしています。これが私のコードです:

-(void)fadeOutVolume
{
    // AVPlayerObject is a property which points to an AVPlayer
    AVPlayerItem *myAVPlayerItem = AVPlayerObject.currentItem;
    AVAsset *myAVAsset = myAVPlayerItem.asset;
    NSArray *audioTracks = [myAVAsset tracksWithMediaType:AVMediaTypeAudio];

    NSMutableArray *allAudioParams = [NSMutableArray array];
    for (AVAssetTrack *track in audioTracks) {

        AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:track];
        [audioInputParams setVolumeRampFromStartVolume:1.0 toEndVolume:0 timeRange:CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake(5, 1))];
        [allAudioParams addObject:audioInputParams];

    }

    AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix];
    [audioMix setInputParameters:allAudioParams];

}

このコードの何が問題なのか、誰にもわかりますか? 音量が正しくフェードアウトしません。

4

2 に答える 2

6

この重要な行がありませんでした:

[myAVPlayerItem setAudioMix:audioMix];

これは比較的簡単な修正でしたが、通常は非常に迅速で注意深い StackOverflow コミュニティが問題を発見できなかったことに失望しています。

于 2012-07-30T17:30:39.140 に答える
-2
    [audioInputParams setVolumeRampFromStartVolume:1.0 toEndVolume:0 timeRange:CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake(5, 1))];

これでは、開始を 1.0 に設定し、終了を 0 に設定して、オーディオのみがフェードアウトするようにしました

于 2012-07-30T04:58:54.563 に答える