在 viewDidLoad Swift 3 中循环播放音频音乐的问题
Posted
技术标签:
【中文标题】在 viewDidLoad Swift 3 中循环播放音频音乐的问题【英文标题】:Trouble with looping audio music play in viewDidLoad Swift 3 【发布时间】:2016-12-12 01:19:39 【问题描述】:我正在尝试在应用启动后播放音乐。没有显示构建错误,但没有播放音乐。这是我在 viewDidLoad 中的代码。我还在顶部导入了 AVFoundation 和 SpriteKit。 (类似问题中提出的解决方案与 Swift 2 相关,不适用于 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.
【问题讨论】:
AVAudioPlayer.play() does not play sound的可能重复 这是 swift 3,我尝试了这些解决方案,但声音仍然没有播放 【参考方案1】:这是你的问题:
let audioPlayer = try AVAudioPlayer(contentsOf:musicPlay as URL)
这是一个本地变量,所以它甚至在它有机会开始播放之前就已经不存在了。
【讨论】:
我应该用什么代替它? 见***.com/questions/29379524/… 我在函数之外添加了这个但仍然没有音频... var audioPlayer:AVAudioPlayer = AVAudioPlayer(); 我不知道你现在在做什么。我所知道的是您在问题中输入的代码。我向你保证,我的回答正确地解释了为什么 那个 代码永远不会播放任何声音。 所以我应该废弃整个区块还是只废弃那一行?如何使其成为一个属性以使其始终存在?以上是关于在 viewDidLoad Swift 3 中循环播放音频音乐的问题的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3:在 ViewDidLoad 中从服务器获取信息,当单击按钮时,等待服务器的信息响应
为啥viewDidLoad在swift中完成时不显示数据? [关闭]