Audio AVFoundation无法读取wav文件格式

Audio AVFoundation无法读取wav文件格式,audio,avfoundation,wav,avassetwriter,avasset,Audio,Avfoundation,Wav,Avassetwriter,Avasset,我正在尝试从多个其他wav文件创建一个wav文件。 我使用AVAsset、AvassetReader和AVAssetWriter 用于AVAssetWriterInput和avassetraderaudiomixoutput的格式设置如下所示: AVAudioFormat(commonFormat:.pcmFormatInt16,采样器:44100,通道:2,交错:true) AVAssetWriter是这样创建的:AVAssetWriter(url:outputURL,文件类型:.wav) 顺

我正在尝试从多个其他wav文件创建一个wav文件。 我使用AVAsset、AvassetReader和AVAssetWriter

用于
AVAssetWriterInput
avassetraderaudiomixoutput
的格式设置如下所示:
AVAudioFormat(commonFormat:.pcmFormatInt16,采样器:44100,通道:2,交错:true)

AVAssetWriter是这样创建的:
AVAssetWriter(url:outputURL,文件类型:.wav)

顺便说一句,我注意到两件奇怪的事情:

1)当我从wav文件创建AVAsset时,我没有任何metadta。 资产创建是:

let url = URL(fileURLWithPath: mWaveFilePath)
let asset = AVAsset(url: url)
我不能做得更简单,当我寻找这个资产的元数据属性时,我总是得到带有wav文件的空数组

2)最重要的是,当我编写一个wave文件时,我感觉到AVFoundation在这个过程中犯了一些错误。也许是我写的,但我成功地创建了一个带有音频的wave文件,并且遵循了一些教程,我很难找到错误的来源。 下面是一个好标题和坏标题的示例:

导入文件之前,请先检查好的标头。 我们可以看到format标签被设置为1,这意味着PCM。这就是我们想要的

现在,在创建我的音频文件后出现错误的标题: -2... 这显然是错误的


那么,我是否错过了使用AVFoundation创建wav文件的一些内容,我是否应该做一些特别的事情?

Wave头不是“坏”的。显示为
带符号短-2
的实际上是
WAVE\u格式的值,而“good”标题中
1
的值是
WAVE\u格式的PCM
。如何让AVFoundation以后一种格式创建文件,我感到非常荣幸。@非常感谢您的输入和精确性。我不知道。不幸的是,我没有找到比在代码中手动更改此字段更好的解决方案…Wave头并不是“坏的”。显示为
带符号短-2
的实际上是
WAVE\u格式的值,而“good”标题中
1
的值是
WAVE\u格式的PCM
。如何让AVFoundation以后一种格式创建文件,我感到非常荣幸。@非常感谢您的输入和精确性。我不知道。不幸的是,我没有找到比在代码中手动更改此字段更好的解决方案。。。