2016-12-12 4 views
-1

Я пытаюсь создать цикл музыки после запуска приложения. Ошибок сборки не отображаются, но музыка не воспроизводится. Вот код, который у меня внутри viewDidLoad. Также я импортировал AVFoundation и SpriteKit вверху. (Решения, которые были представлены в подобных вопросах связаны с Swift 2 и не работают в Swift 3)Неисправность с зацикленной аудио-музыкой в ​​представленииDidLoad Swift 3

override func viewDidLoad() { 

// Здесь я изменить цвет фона DatePicker

dateWheel.backgroundColor = .blue 
    dateWheel.setValue(UIColor.white, forKeyPath: "textColor") 

// Музыка должна начать играть, как только приложение запускает

func playSound(soundName: String) 

    { 
     let musicPlay = NSURL(fileURLWithPath: Bundle.main.path(forResource: "chinaAudioNew", ofType: "mp3")!) 
     do{ 
      let audioPlayer = try AVAudioPlayer(contentsOf:musicPlay as URL) 
      audioPlayer.prepareToPlay() 
      audioPlayer.play() 
      audioPlayer.numberOfLoops = -1 

     }catch { 
      print("Error getting the audio file") 
     } 
    } 



    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

}

+0

Возможный дубликат [AVAudioPlayer.play() не воспроизводит звук] (http://stackoverflow.com/questions/29379524/avaudioplayer-play-does-not-play-sound) – matt

+0

это быстро 3, я попытался эти решения, однако, звучат до сих пор не играют –

ответ

1

Это ваша проблема:

let audioPlayer = try AVAudioPlayer(contentsOf:musicPlay as URL) 

Это локальная переменная так выходит из существования даже прежде, чем она получает шанс, чтобы начать играть.

+0

Что я должен положить на свое место? –

+0

См. Http://stackoverflow.com/questions/29379524/avaudioplayer-play-does-not-play-sound – matt

+0

Я добавил это за пределы функции, но все же не аудио ... var audioPlayer: AVAudioPlayer = AVAudioPlayer(); –

Смежные вопросы