Audio iOS 8 swift未播放音频文件
这是我正在使用的代码:Audio iOS 8 swift未播放音频文件,audio,swift,ios8,Audio,Swift,Ios8,这是我正在使用的代码: var aSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("abc", ofType: "mp3")) var audioPlayer = AVAudioPlayer() println(aSound) audioPlayer = AVAudioPlayer(contentsOfURL: aSound, error: nil)
var aSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("abc", ofType: "mp3"))
var audioPlayer = AVAudioPlayer()
println(aSound)
audioPlayer = AVAudioPlayer(contentsOfURL: aSound, error: nil)
audioPlayer.prepareToPlay()
audioPlayer.play()
我试图打印文件的路径,这是我在控制台中看到的
file:///Users/<username>/Library/Developer/CoreSimulator/Devices/<some GUID>/data/Containers/Bundle/Application/<some different GUID>/HelloWorld.app/abc.mp3
file:///Users//Library/Developer/CoreSimulator/Devices//data/Containers/Bundle/Application//HelloWorld.app/abc.mp3
我通过菜单中的“将文件添加到项目”将mp3添加到我的项目中。
当我运行模拟器时,它会自动添加到上面的位置吗
var audio: AVAudioPlayer = AVAudioPlayer()
@IBAction func playaudio(sender: AnyObject) //method for playing audio {
var audioPath = NSString(string: NSBundle.mainBundle().pathForResource("bus", ofType: "mp3")!)
var error: NSError? = nil
//instantiate the player
audio = AVAudioPlayer(contentsOfURL: NSURL(string: audioPath as String), error: &error)
audio.prepareToPlay()
audio.play()
}
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view.
}
不要忘记导入AVFoundation Framework。使用此功能在Swift中发声(您可以在想要发声的地方使用此功能。)
import UIKit
import AVFoundation
class ViewController: UIViewController {
var audioPlayer = AVAudioPlayer()
override func viewDidLoad() {
super.viewDidLoad()
var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("fileName", ofType: "extension"))
println(alertSound)
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
}
import SpriteKit
func playEffectSound(filename: String){
runAction(SKAction.playSoundFileNamed("\(filename)", waitForCompletion: false))
}
// use this function to play sound
playEffectSound("Sound File Name With Extension")
// Example :- playEffectSound("BS_SpiderWeb_CollectEgg_SFX.mp3")
首先添加SpriteKit框架
import UIKit
import AVFoundation
class ViewController: UIViewController {
var audioPlayer = AVAudioPlayer()
override func viewDidLoad() {
super.viewDidLoad()
var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("fileName", ofType: "extension"))
println(alertSound)
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()
}
}
import SpriteKit
func playEffectSound(filename: String){
runAction(SKAction.playSoundFileNamed("\(filename)", waitForCompletion: false))
}
// use this function to play sound
playEffectSound("Sound File Name With Extension")
// Example :- playEffectSound("BS_SpiderWeb_CollectEgg_SFX.mp3")
(audioPlayer需要是一个属性,以便播放器不会过早重新分配)的可能副本谢谢Martin。我完全没有注意到那条评论中的代码。让它发挥作用。