2016-12-30 1 views
1

18kHz 주변의 톤을 가진 WAV 파일이 있습니다. 오디오는 16 비트 PCM 모노입니다.iOS Xode : AVAudioPlayer가 WAV 파일을 올바르게 재생하지 않습니다.

나는 파일을 재생하기 위해 다음과 같은 기능을 사용하고 있습니다 : 내 iOS에서 10.2 장치를 재생할 때

func playSound(name: String) { 
     let documents = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] 
     let path = documents.appending("/").appending(name) 

     let url = NSURL.fileURL(withPath: path) 

     do { 
      player = try AVAudioPlayer(contentsOf: url) 
      guard let player = player else { return } 

      player.prepareToPlay() 
      player.play() 
     } catch let error { 
      print(error.localizedDescription) 
     } 
    } 

나는 10000Hz까지를 1000Hz 사이의 톤의 시리즈를들을 수 있습니다. 렌더링 된 오디오를 캡처하여 분석 한 결과, 주파수 플롯은 18kHz의 원본 컨텐츠가 있음을 보여 주지만 1000Hz에서 10000Hz 사이의 톤도 있습니다. VLC 또는 다른 데스크탑 오디오 플레이어에서 동일한 WAV 파일을 재생할 때 톤이 들리지 않습니다 (18kHz 근처에 있기 때문에 예상됩니다). 위의 코드가 데이터를 올바르게로드하지 못하거나 플레이어가 제대로 초기화되지 않았다고 생각합니다. 그래서 내가 잘못하고있는 것을 말해 줄 수있는 노련한 iOS 베테랑이 필요합니다.

미리 감사드립니다.

답변

0

이 한 일 //

수입 UIKit 수입 AVFoundation

클래스의 ViewController :의 UIViewController {

var audioPlayer = AVAudioPlayer() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("button-09", ofType: "wav")) 
    println(alertSound) 

    // Removed deprecated use of AVAudioSessionDelegate protocol 
    AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil) 
    AVAudioSession.sharedInstance().setActive(true, error: nil) 

    var error:NSError? 
    audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error) 
    audioPlayer.prepareToPlay() 
    audioPlayer.play() 
} 

} 강력한 텍스트

+0

감사합니다,하지만 난 기대했다 내가 뭘 잘못하고 있을지에 대한 대답 – user1884325

관련 문제