gpt4 book ai didi

ios - 使用AVAudioPlayer播放音乐吗?

转载 作者:行者123 更新时间:2023-12-03 02:04:21 26 4
gpt4 key购买 nike

我使用的是AVAudioPlayer框架,进入一个区域时我选择播放一首歌(我使用的是Core Location框架,使用didEnterRegion函数时调用此函数)。

...
var audioPlayer = AudioPlayer()
...
func playMusic(regionIdentifier: String!){
//Get Documents Directory
let documentsDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
//Get region label with music file
var musicFile = db.selectRegion(regionIdentifier)
//If music file exists, play specified music file.
if(musicFile != ""){
var error:NSError?
var musicFilePath = documentsDirectory + "/" + musicFile
audioPlayer = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: musicFilePath), error:&error)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
else{
NSLog("File is not in Database.")
}
}

第一次进入区域时,音频播放器会很好地播放音乐片段。但是,当我想重播以前已经播放过的歌曲时(我正在访问我以前曾访问过的区域)时,似乎我的歌曲没有重播。我知道正确调用了函数 didEnterRegion,我尝试查找第二次播放歌曲时 AVAudioPlayer中是否有错误,但似乎没有产生任何错误。关于我的歌曲为何第二次不播放的任何想法?谢谢!我也查看了 AVAudioPlayer won't play existing file a second time并尝试将NSURL转换为NSData类型,但是我仍然收到相同的结果。

编辑:我什至尝试打印出 play()函数是否返回true,并且确实返回true。

最佳答案

尝试重置音频播放器,然后再播放:

audioPlayer.stop()
audioPlayer.currentTime = 0
audioPlayer.play()

关于ios - 使用AVAudioPlayer播放音乐吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28692713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com