我在這裏有一個問題,在混合兩個CAF文件。混合兩個CAF文件在一起
首先CAF文件 - >通過從服務器側
二CAF文件給定的URL抓取 - >與AVAudioRecorder
取文件尺寸的記錄 - 10秒
錄音文件大小 - 7秒
如何在一個文件中混合這兩個給定的音頻文件,請給我一些相同的示例代碼。格式也必須只在CAF中。
我在這裏有一個問題,在混合兩個CAF文件。混合兩個CAF文件在一起
首先CAF文件 - >通過從服務器側
二CAF文件給定的URL抓取 - >與AVAudioRecorder
取文件尺寸的記錄 - 10秒
錄音文件大小 - 7秒
如何在一個文件中混合這兩個給定的音頻文件,請給我一些相同的示例代碼。格式也必須只在CAF中。
AVFoundation框架中的AVMutableComposition可以做到這一點;你可以做類似
AVMutableComposition *comp = [AVMutableComposition new];
AVMutableCompositionTrack *compTrack1 = [comp addMutableTrackWithMediaType:AVMediaTypeAudio
preferredTrackId:kCMPersistentTrackID_Invalid];
AVMutableCompositionTrack *compTrack2 = [comp addMutableTrackWithMediaType:AVMediaTypeAudio
preferredTrackId:kCMPersistentTrackID_Invalid];
AVAssetTrack *srcTrack1 = UseAVAssetToGetTrackfromFirstFile();
AVAssetTrack *srcTrack2 = UseAVAssetToGetTrackfromSecondFile();
NSError *error = nil;
[compTrack1 insertTimeRange:CMTimeRangeMake(kCMTimeZero, kCMTimePositiveInfinity)
ofTrack:srcTrack1
atTime:kCMTimeZero error:&error];
CheckForError(error);
[compTrack2 insertTimeRange:CMTimeRangeMake(kCMTimeZero, kCMTimePositiveInfinity)
ofTrack:srcTrack2
atTime:kCMTimeZero error:&error];
CheckForError(error);
// emit mix from the composition here with a reader or whatever.
你也可以用組合設置相對等級。如果你需要做更多的事情而不僅僅是關卡和平移,你必須創建一個AudioUnit圖。
'mix'的意思是讓1個文件同時播放兩個聲音,或者將它們連接成1個17秒播放第一個文件然後第二個文件?對於後者,我有辦法用.wav文件做到這一點。也許你可以使用這個代碼來解決你的問題。 – Manuel
@ dragon112「Mix」表示兩個文件混合在一起後,兩個文件在一個文件中一起播放。例如,如果其中一個是主題音頻文件,並且您錄製了我們自己的內容,然後將該錄製文件與主題文件混合在一起。 – sandy
@sandy你已經試過了什麼?你有什麼問題? – occulus