Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用AVMutableAudioMixInputParameters进行音量衰减_Objective C_Media Player_Avplayer_Fadeout_Avplayeritem - Fatal编程技术网

Objective c 使用AVMutableAudioMixInputParameters进行音量衰减

Objective c 使用AVMutableAudioMixInputParameters进行音量衰减,objective-c,media-player,avplayer,fadeout,avplayeritem,Objective C,Media Player,Avplayer,Fadeout,Avplayeritem,我想在用户单击停止按钮时淡出音轨,例如,我使用此代码淡出声音 -(void)soundFadeOut{ AVPlayerItem *myAVPlayerItem = mainPlayer.currentItem; AVAsset *myAVAsset = myAVPlayerItem.asset; NSArray *audioTracks = [myAVAsset tracksWithMediaType:AVMediaTypeAudio]; NSMutableArray *allAudioP

我想在用户单击停止按钮时淡出音轨,例如,我使用此代码淡出声音

-(void)soundFadeOut{

AVPlayerItem *myAVPlayerItem = mainPlayer.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];
[myAVPlayerItem setAudioMix:audioMix];}

但是,当我单击按钮时,音量一次变为零。

我现在知道我的故障,它位于CMTime范围内的第一个CMTime参数中

        CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake( 5, 1);

我发现第一个
CMTimeMake
指向在我的情况下将开始淡出的第二个,即当前第二个,而另一个
CMTimeMake
是淡出的持续时间

我现在知道我的错误,它在CMTimeRange中的第一个CMTime参数中

        CMTimeRangeMake(CMTimeMake(0, 1), CMTimeMake( 5, 1);
我发现第一个
CMTimeMake
指向将开始淡出的第二个(在我的情况下是当前第二个),而另一个
CMTimeMake
则指向淡出的持续时间