swift - 播放与 plist 中的项目关联的音频文件

标签 swift audio

我的应用程序中有几个地方有音频,其中大部分是直接的并且工作正常,例如

func ayuh() {
        do {
            audioPlayer =  try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("ayuhSound2", ofType: "mp3")!))
            audioPlayer!.play()

        } catch {
            print("Error")
        }
    }

现在,我正尝试在我的 plist 播放中添加与特定问题相关的音频文件。我试过这个:

 func nextQuestion() {
    let currentQuestion = mcArray![questionIdx]

    answers = currentQuestion["Answers"] as! [String]
    correctAnswer = currentQuestion["CorrectAnswer"] as? String
    question = currentQuestion["Question"] as? String

    cardButton.enabled = false
    titlesForButtons()
    self.bonusCoin.hidden = true
    //this code above works to bring up the question and various answers

    audio = currentQuestion["Audio"] as? String
    do {
        mcaudioPlayer =  try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(audio, ofType: "mp3")!))

        mcaudioPlayer!.play()

    } catch {
        print("Error")
    }

            mcaudioPlayer!.play()

        } catch {
            print("Error")
        }

但这只会针对每个问题一遍又一遍地播放列表中的第一个音频文件。 here are the audio files so far

I want the before_lepage.mp3 to play when this question appears from the array in my trivia app

有什么线索可以播放 plist 中关联的音频文件吗?

最佳答案

我成功了(在 friend 的帮助下 ;))

func nextQuestion() {

        let currentQuestion = mcArray![questionIdx]

        answers = currentQuestion["Answers"] as! [String]

        correctAnswer = currentQuestion["CorrectAnswer"] as? String

        question = currentQuestion["Question"] as? String

        cardButton.enabled = false

        titlesForButtons()

        self.bonusCoin.hidden = true

        audio = currentQuestion["Audio"] as? String

        createPlayerItem(audio!, ofType: "mp3")

        queuePlayer.play()

        //queuePlayer.removeAllItems()

    }



    func createPlayerItem(item: String, ofType type: String) {

        let path = NSBundle.mainBundle().pathForResource(item, ofType: type)

        let url = NSURL.fileURLWithPath(path!)

        let item = AVPlayerItem(URL: url)

        queuePlayer.insertItem(item, afterItem: nil)   

    }

关于swift - 播放与 plist 中的项目关联的音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37046467/

相关文章:

ios - Core Data <Fault> 使用一次后

audio - 使用Angular JS在iPad上加载音频的问题是什么

javascript - Android/IOS 上的实时 Javascript 合成器。 HTML5 音频标签不会接受注入(inject)的数据

android - Android 模拟器可以使用 pc 硬件录制和播放音频吗?

java - 音频到实数

ios - 进入 TabBarController 的特定 ViewController

ios - Swift:无法将类型 '() -> Bool' 的值转换为预期的参数类型 'PFObject'

swift - 如何在 swift3.x 中使用 AnyClass 初始化特定类实例

ios - swift - 如何保存开关,即使我更改 TableViews

javascript - 如何在 Greasemonkey 脚本中播放声音?