AVAudioPlayer 不播放 mp3 文件
AVAudioPlayer not playing mp3 file
我的模拟器上有 运行 这个应用程序,还有我的 phone 和多个 mp3 文件,但是我无法从应用程序输出声音。我已将 mp3 文件包含在支持的文件中。老实说,我不知道下一步该怎么做。我没有收到任何错误,但是没有音频。
@IBAction func play (sender: AnyObject){
func sharedInstance() {
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
var audioPlayer = AVAudioPlayer()
var song = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("pingpong", ofType: "mp3")!)
println(song)
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: song, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
sharedInstance()
}
只需将 var audioPlayer = AVAudioPlayer()
设置为 class 的全局变量,如下面的代码所示:
并且我已经修改了您的代码以使其安全:
import UIKit
import AVFoundation
class ViewController: UIViewController {
var audioPlayer = AVAudioPlayer()
@IBAction func play (sender: AnyObject){
var categoryError: NSError?
if AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: &categoryError) {
println("AVAudioSession Category Playback OK")
var activateError: NSError?
if AVAudioSession.sharedInstance().setActive(true, error: &activateError) {
println("AVAudioSession is Active")
var song = NSBundle.mainBundle().URLForResource("we_cant_Stop", withExtension: "mp3")!
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: song, error: &error)
audioPlayer.play()
} else if let activateError = activateError {
println(activateError.description)
}
} else if let categoryError = categoryError {
println(categoryError.description)
}
}
}
这工作正常。
我的模拟器上有 运行 这个应用程序,还有我的 phone 和多个 mp3 文件,但是我无法从应用程序输出声音。我已将 mp3 文件包含在支持的文件中。老实说,我不知道下一步该怎么做。我没有收到任何错误,但是没有音频。
@IBAction func play (sender: AnyObject){
func sharedInstance() {
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
var audioPlayer = AVAudioPlayer()
var song = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("pingpong", ofType: "mp3")!)
println(song)
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: song, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
sharedInstance()
}
只需将 var audioPlayer = AVAudioPlayer()
设置为 class 的全局变量,如下面的代码所示:
并且我已经修改了您的代码以使其安全:
import UIKit
import AVFoundation
class ViewController: UIViewController {
var audioPlayer = AVAudioPlayer()
@IBAction func play (sender: AnyObject){
var categoryError: NSError?
if AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: &categoryError) {
println("AVAudioSession Category Playback OK")
var activateError: NSError?
if AVAudioSession.sharedInstance().setActive(true, error: &activateError) {
println("AVAudioSession is Active")
var song = NSBundle.mainBundle().URLForResource("we_cant_Stop", withExtension: "mp3")!
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: song, error: &error)
audioPlayer.play()
} else if let activateError = activateError {
println(activateError.description)
}
} else if let categoryError = categoryError {
println(categoryError.description)
}
}
}
这工作正常。