【发布时间】:2015-12-01 01:52:12
【问题描述】:
我正在尝试获取我的AVAudioPlayer 的averagePowerForChannel 以绘制一些图形。
播放器正在播放歌曲,但averagePowerForChannel 从未更新并返回-160。
我还启用了计量并更新了计量但仍然无法正常工作。
我做错了什么?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
timerAudio = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "checkTime", userInfo: nil, repeats: true)
self.audioPlayer?.meteringEnabled
playAudio( false, SongNumber: 2)
}
func checkTime() {
self.audioPlayer?.updateMeters()
self.audioPlayer?.numberOfChannels
let normalizedValue = self.audioPlayer?.averagePowerForChannel(0)
print(normalizedValue)
self.waveformView.updateWithLevel(CGFloat(normalizedValue!))
}
func playAudio( stopAudio:Bool, SongNumber: Int) {
let songNumber = SongsArray
let songNumberMediaPlayer = SongsArray
nameSong(songNumber[SongNumber])
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)
}
let dispatchQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(dispatchQueue, {
let mainBundle = NSBundle.mainBundle()
/* Find the location of our file to feed to the audio player */
let filePath = mainBundle.pathForResource(songNumber[SongNumber], ofType:"mp3")
if let path = filePath{
let fileData = NSData(contentsOfFile: path)
do {
/* Start the audio player */
self.audioPlayer = try AVAudioPlayer(data: fileData!)
guard let player = self.audioPlayer else{
return
}
/* Set the delegate and start playing */
player.delegate = self
if player.prepareToPlay() && player.play(){
/* Successfully started playing */
} else {
/* Failed to play */
}
} catch{
self.audioPlayer = nil
return
}
if stopAudio == true {
self.audioPlayer?.pause()
self.timerAudio.invalidate()
}else {
self.audioPlayer?.play()
}
}
})
}
【问题讨论】:
标签: audio swift2 avaudioplayer avaudiosession