swift - 使用 swift 1.2 设置 AVAudioPlayer?

标签 swift audio

当我上次尝试设置 AVaudioPlayer 时,我使用了这段代码:

func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer  {
    var path = NSBundle.mainBundle().pathForResource(file, ofType:type)
    var url = NSURL.fileURLWithPath(path!)
    var error: NSError?
    var audioPlayer:AVAudioPlayer?
    audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)
    return audioPlayer!
}

 var buttonBeep = AVAudioPlayer()

 buttonBeep = self.setupAudioPlayerWithFile("buttonPush", type:"m4a")

而且效果很好。现在使用 Swift 1.2,我似乎无法做到这一点。

我也试过这段代码:

var button : AVAudioPlayer?

in didMoveToView:

if let button = self.setupAudioPlayerWithFile("button", type:"m4a") {
        self.button = button
    }

func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer?  {
    let path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
    let url = NSURL.fileURLWithPath(path!)

    var error: NSError?
    var audioPlayer:AVAudioPlayer?
    audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)
    return audioPlayer
}

它在 let url 行上给我一个错误 - EXC_BAD_INSTRUCTION。我将我的音频文件放在项目中的支持​​文件中。我做错了什么?

更新:那是我的错误。如果您遇到同样的问题——请确保将声音添加到应用的目标中,而不仅仅是在项目中

最佳答案

试试这段代码:

var backgroundMusicPlayer: AVAudioPlayer!

func playBackgroundMusic(filename: String) {

        let url = NSBundle.mainBundle().URLForResource(filename, withExtension: nil)
        if (url == nil) {
            println("Could not find file: \(filename)")
            return
        }

        var error: NSError? = nil
        backgroundMusicPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)
        if backgroundMusicPlayer == nil {
            println("Could not create audio player: \(error!)")
            return
        }

        backgroundMusicPlayer.numberOfLoops = -1
        backgroundMusicPlayer.prepareToPlay()
        backgroundMusicPlayer.play()

}

这样使用:

playBackgroundMusic("button.m4a")

希望对您有所帮助。

它在 1.2 上运行良好,我现在没有测试它,因为我已经更新了我的 Xcode,我建议您使用具有 swift 版本 2.0 的最新版本的 Xcode。

关于swift - 使用 swift 1.2 设置 AVAudioPlayer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688735/

相关文章:

ios - Swift 中的 Firebase 查询无法正常工作

iphone - Cocos2d中有一定音量的声音吗?

java - 声音将无法在Java中播放。.JFrame和Canvas不是Applet

ios - 自定义 UICollectionViewCell 未从缓存中加载

swift - fatal error : Insufficient space allocated to copy string contents (iOS 13) Emoji

ios - Scenekit:两个 SCNNode 之间的角度

animation - 快速更改带有动画的字体/标签大小

audio - 通过 socket.io 发送浏览器音频流

javascript - JS播放提示音的通知无法正常工作

android - 即使应用被杀死,声音仍会继续播放