我正在尝试从多个其他wav文件创建一个wav文件。 我使用AVAsset,AVAssestReader和AVAssetWriter。
AVAssetWriterInput
和AVAssetReaderAudioMixOutput
使用的格式设置如下:
AVAudioFormat(commonFormat: .pcmFormatInt16, sampleRate: 44100, channels: 2, interleaved: true)
AVAssetWriter的创建方式如下:AVAssetWriter(url: outputURL, fileType: .wav)
顺便说一下,我注意到了两件奇怪的东西:
1)当我从wav文件创建AVAsset时,我没有任何元素。 资产创建是:
let url = URL(fileURLWithPath: mWaveFilePath)
let asset = AVAsset(url: url)
我不能做得更简单,当我查找此资产的元数据属性时,我总是使用wav文件获取空数组...
2)最重要的是,当我写一个wave文件时,我觉得AVFoundation在wave header中出现了一些错误。也许它来自我,但我设法创建一个带有音频的wave文件,并按照一些教程我很难找到错误可能来自哪里。 这是一个好的和坏的标题的例子:
导入文件前的好标题。 我们可以看到format标签设置为1表示PCM。这就是我们想要的。
创建音频文件后出现错误的标题: -2 ......显然是错的。
所以我错过了使用AVFoundation创建wav文件的内容,我应该做些什么特别的事情吗?