我正在 Xcode 中开发一个 iOS 应用程序。我还是编程新手。我正在尝试设置音轨的音量,同时使用AVPlayer
. 如果将时间设置为很好,kCMTimeZero
但我希望它在按下按钮一秒后设置音量。
不工作
- (IBAction)maxVolButtonPressed:(id)sender {
[audioInputParams1 setVolume:1 atTime:time1];
[self applyAudioMix];
}
在职的
- (IBAction)minVolButtonPressed:(id)sender {
[audioInputParams1 setVolume:0 atTime:kCMTimeZero];
[self applyAudioMix];
}
atTime
如果我想要一秒钟的延迟,我应该写什么?
回答:好的,所以我想通了。您必须添加当前项目当前所在的时间。我使用时间间隔很小的 setVolumeRampFromStartVolume 而不是 setVolume。由于某种原因,setVolume 淡出到给定的音量我还没有弄清楚为什么。它对我有用:
CMTime time1 = CMTimeMake(1000, 1000); //2s
CMTime time2 = CMTimeMake(1001, 1000); //3s
CMTime timeCurrent = [player currentTime];
CMTime time1Added = CMTimeAdd(timeCurrent, time1);
CMTime time2Added = CMTimeAdd(timeCurrent, time2);
CMTimeRange fadeInTimeRange = CMTimeRangeFromTimeToTime(time1Added, time2Added);
[audioInputParams1 setVolumeRampFromStartVolume:0 toEndVolume:1 timeRange:fadeInTimeRange];
[self applyAudioMix];