1
我正在Xcode中開發iOS應用程序。我仍然是編程新手。 我試圖在播放時使用AVPlayer
設置音軌的音量。如果設置時間爲kCMTimeZero
,但是我希望它在按下按鈕一秒後設置音量,它會很好用。AVMutableAudioMixInputParameters setVolume atTime不適用於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];
是的,我想到了,但我只是不能解釋爲什麼它不是工作,如果我把例如:CMTime time1 = CMTimeMake(1000,1000);而不是kCMTimeZero。 – 2013-04-25 17:01:25