2014-06-06 1 views
2

스위프트 놀이터 (아래 코드)에서 기본 예제를 설정하려고하지만 동일한 결과로 Objective-C로 시도했습니다.AVAudioPCMBuffer 작동하기 (AVAudioFile.mm 오류 코드 -50)

import AVFoundation 

let fileURL = ... // have tried a wav file and a aiff file 
let myAudioFile = AVAudioFile(forReading: fileURL, error: nil) 
let myAudioFormat = myAudioFile.fileFormat 
let myAudioFrameCount = UInt32(myAudioFile.length) 
var myAudioBuffer = AVAudioPCMBuffer(PCMFormat: myAudioFormat, frameCapacity: myAudioFrameCount) 
// have also tried a smaller frameCapacity 

그것은이 시점까지 잘 작동하지만 다음이와 함께 종료 :

var myError: NSError? 
myAudioFile.readIntoBuffer(myAudioBuffer, error:&myError) 

가 나는 또한 버퍼 인수의 이름을 지정 시도 : myAudioBuffer하지만은 "외부 인수"오류를 제공합니다.

궁극적으로 버퍼의 Raw PCM 데이터를 Swift 배열로 가져 오려고합니다.

+1

여기에 코드에 어떤 문제도 나타나지 않습니다. Objective-C에도 코드를 표시 할 수 있습니까? – Unheilig

답변

6

AVAudioPCMBufferPCMFormat는 다음과 같이 설정할 수있는 AVAudioFile.processingFormat하지.fileFormat : 나는이이 같은 생각했다, 그러나 그것은 그렇지 않습니다!

+1

나는 이것을 알고 있었다! 하지만 그들은 두 가지 유형이라고 생각했고 귀하의 경우에는 fileFormat이 필요했습니다. 좋았어, 비도덕적이지, 나는 단지 99 % 확신했기 때문에 나는 대답하지 않았다. 이제 네가 잘 했어. – Unheilig

+1

@Unheilig 어쨌든 고마워. :) 나는 이미 이걸 시도했지만 확실한 것은 아니라고 맹세 할 수 있었다. -50 오류 코드/크래시도 그다지 도움이되지 않았습니다! 불행히도 이제이 문제가 해결되어 새로운 (신속 관련) 문제가 발생합니다. http://stackoverflow.com/questions/24090119/from-unsafepointerunsafepointercfloat-to-an-array-of-floats-in-swift – Matthew

관련 문제