Audio AVFoundation无法读取wav文件格式
我正在尝试从多个其他wav文件创建一个wav文件。 我使用AVAsset、AvassetReader和AVAssetWriter 用于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) 顺
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以后一种格式创建文件,我感到非常荣幸。@非常感谢您的输入和精确性。我不知道。不幸的是,我没有找到比在代码中手动更改此字段更好的解决方案。。。