2016-03-15 2 views
0

Я пытаюсь воспроизвести звук с помощью AVAudioPlayer, но он не воспроизводится. Я попробовал как устройство (iPhone 6s), так и симулятор. Я не получаю никаких ошибок, и он регистрирует его. Когда я устанавливаю точку прерывания перед звуковым сигналом (audioPlayer.play()) и перешагиваю, он играет несколько секунд и останавливается. Мой код:Swift 2 - AVAudioPlayer не воспроизводит аудио

let soundURL = NSBundle.mainBundle().URLForResource("test", withExtension: "mp3") 
     do { 
      try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
      try AVAudioSession.sharedInstance().setActive(true) 
      if let soundURL = soundURL { 
       let audioPlayer = try AVAudioPlayer(contentsOfURL: soundURL) 
       audioPlayer.volume = 1 
       audioPlayer.delegate = self 
       audioPlayer.prepareToPlay() 
       print(audioPlayer.duration) 
       audioPlayer.play() 
       print("PLAYED") 
      } 
     }catch { 
      print("Error getting the audio file") 
     } 
+0

Где код, который вы указали в остальном коде? Это все в пределах viewDidLoad? – MikeG

ответ

0

Вот пример, который будет работать. Я не уверен, где, по отношению к остальной части вашего кода, у вас есть код, который вы показали выше. Удостоверьтесь, что громкость вашего устройства не отключена и не активирована ...

//declare these as instance variables 
var AudioURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("FileName", ofType: "mp3")!) 
var AudioPlayer = AVAudioPlayer() 

//inside viewDidLoad establish your AVAudioSession and configure the AudioPlayer with the contents of URL 
override func viewDidLoad() { 
    super.viewDidLoad() 

    do { 
     try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
     //print("AVAudioSession Category Playback OK") 
    do { 
     try AVAudioSession.sharedInstance().setActive(true) 
      //print("AVAudioSession is Active") 
    } catch let error as NSError { 
     print(error.localizedDescription) 
    } 
    } catch let error as NSError { 
     print(error.localizedDescription) 
    } 


    do { 
     try AudioPlayer = AVAudioPlayer(contentsOfURL: AudioURL, fileTypeHint: nil) 
    } catch { 
     print("errorin do-try-catch") 
    } 
} 

    //play audio 
    @IBAction func playAudio(sender: AnyObject){ 
     AudioPlayer.play() 
    } 
Смежные вопросы