只是想了解,我可以用AVMutableAudioMix類做些什麼,一旦我將PlayerItems(Assets)插入到AudioMix中,我可以在同一時間播放它們中的一個,或者其中一些播放器使用AVPlayer並動態更改參數?AVMutableAudioMix簡單問題
0
A
回答
3
我想你可能會錯誤地將其視覺化。 AVMutableAudioMix實例實際上是AVPlayerItem類中的一個property。首先使用tracksWithMediaType:獲取資產的軌跡,並使用audioMixInputParametersWithTrack:創建AVMutableAudioMixInputParameters實例。在該輸入參數實例上設置任何音頻屬性(例如setVolume:atTime)。
然後您需要將輸入參數添加到AVMutableAudioMix實例。然後你需要把它添加到一個球員項目。我知道這聽起來令人困惑,但這正是AVFoundation如何處理一切事情。各地都有條款,但幾乎所有的東西都有層次結構。
所以一般的層次是這樣的:player-> playerItem-> audioMix-> inputParameters。該代碼斜坡下降從5到7秒大關的體積應該是這個樣子:
AVAssetTrack *audioTrack = [[self.player.currentItem.asset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
AVMutableAudioMixInputParameters *params = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:audioTrack];
[params setVolumeRampFromStartVolume:1.0 toEndVolume:0.5 timeRange:CMTimeRangeMake(CMTimeMake(5,1), CMTimeMake(2,1))];
AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix];
audioMix.inputParameters = [NSArray arrayWithObject:params];
self.player.currentItem.audioMix = audioMix;
至於動態這樣做,你可以,但只能與本地文件(而不是從互聯網上的流)。我可能會嘗試將這個audioMix保存爲ivar,並且每次你想要發生某些事情時都嘗試重新設置params。如果這不起作用,您可能不得不每次都創建一個AVMutableAudioMix的實例,不確定。
相關問題
- 1. 簡單Grep問題
- 2. (簡單)問題TweetSharp
- 3. 簡單fizzbuzz問題
- 4. 簡單$ _GET問題
- 5. MVVM簡單問題
- 6. 簡單C問題
- 7. CSS問題簡單
- 8. Xpath簡單問題
- 9. Prolog簡單問題
- 10. Lisp簡單問題
- 11. 簡單TableView問題
- 12. 簡單RDOC問題
- 13. 簡單Jeditable問題
- 14. Drupal簡單問題
- 15. 簡單CARRAY問題
- 16. 簡單的問題
- 17. INotifyPropertyChanged簡單問題
- 18. 簡單的問題
- 19. 簡單的問題
- 20. Ajax簡單問題
- 21. Calloc簡單問題
- 22. AVMutableAudioMix和AVAssetExportSession
- 23. AVMutableAudioMix - 無法淡出
- 24. 簡單的問題在TortoiseHg
- 25. 簡單的MakeFile問題
- 26. php語法簡單問題
- 27. 簡單的mod_rewrite問題
- 28. 簡單的LISP問題
- 29. 簡單的regex問題
- 30. log4j.properties簡單的問題