私がしようとしているのは、タイトルが言うことですが、私はそれをするように見えません。私は次のことを試みました:Swift 3:AVAudioPCMBufferの長さをTimeIntervalとして取得しますか?
func getLength(buffer: AVAudioPCMBuffer) -> TimeInterval {
let framecount = buffer.frameCapacity
let bytesperframe = buffer.format.streamDescription.pointee.mBytesPerFrame
return TimeInterval(bytesperframe * framecount)
}
しかし、これは私が後になっているように見えない膨大な数です。私はすでに答えを探してみましたが、誰もこれを尋ねているようではないので、私は明らかに何かを見逃しています。誰でも知っていますか?
編集:私はこれに私のコードを変更:
func getLength(buffer: AVAudioPCMBuffer) -> TimeInterval {
let framecount = Float64(buffer.frameCapacity)
let samplerate = buffer.format.streamDescription.pointee.mSampleRate
return TimeInterval(framecount/samplerate)
}
動作しているようですが、少し複雑なようです。別の方法がありますか?