相关疑难解决方法(0)

如何将 Int16 音频样本数据转换为浮点音频样本数组

我目前正在处理音频样本。我从 AVAssetReader 获取它们并有一个CMSampleBuffer类似这样的内容:

guard let sampleBuffer = readerOutput.copyNextSampleBuffer() else {
guard reader.status == .completed else { return nil }
// Completed
// samples is an array of Int16
let samples = sampleData.withUnsafeBytes {
  Array(UnsafeBufferPointer<Int16>(
  start: $0, count: sampleData.count / MemoryLayout<Int16>.size))
 }

 // The only way I found to convert [Int16] -> [Float]...
 return samples.map { Float($0) / Float(Int16.max)}
}

guard let blockBuffer = CMSampleBufferGetDataBuffer(sampleBuffer) else {
return nil
}

let length = CMBlockBufferGetDataLength(blockBuffer)
let sampleBytes = UnsafeMutablePointer<UInt8>.allocate(capacity: length) …
Run Code Online (Sandbox Code Playgroud)

audio avfoundation nsdata nsarray swift

4
推荐指数
1
解决办法
2637
查看次数

将 Swift 数据转换为 Int16

我有一个 Java 服务器,我在其中使用 ashort[]并将其转换为byte[](Big Endian)并将其发送到 iOS 设备。我无法将此字节数组(或DataSwift 中的)转换为int16数组 ( [Int16])。我还想知道我假设 Javashort类型的 Swift 等价物是 Swift 中的 a 是否正确Int16

java ios swift

1
推荐指数
1
解决办法
1708
查看次数

标签 统计

swift ×2

audio ×1

avfoundation ×1

ios ×1

java ×1

nsarray ×1

nsdata ×1