【问题标题】:Parse Audio with Slider使用滑块解析音频
【发布时间】:2015-06-26 18:09:31
【问题描述】:

如何将解析中的音频文件添加到AVAudioPlayer 而不是AVPlayer?我希望能够暂停、播放、停止、重播,并使用滑块来控制音频播放。我试过这个:

我的尝试:

var query = PFQuery(className:"Song1")
query.getObjectInBackgroundWithId("YSuNRfKq3n") {
    (object : PFObject?, error : NSError?) -> Void in
        if let AudioFileURLTemp = object?.objectForKey("SongFile")?.url {
            AudioPlayer = AVPlayer(URL: NSURL(string: AudioFileURLTemp!))
            AudioPlayer.play()
        }
    )
}

【问题讨论】:

  • “它不起作用”是什么意思?你遇到了什么错误?
  • 我相信从解析流式传输音频你只能使用 AVPlayer 但它说:使用未解析的标识符'AudioFileURLTemp'
  • 该错误意味着您的类找不到名为AudioFileURLTemp 的变量。你确定你有一个名为那个的变量吗?您要播放的音频文件在哪里?
  • 这就是我正在做的,它从 Parse 播放背景音频文件: var query = PFQuery(className:"Song1") query.getObjectInBackgroundWithId("YSuNRfKq3n") { (object : PFObject?, error : NSError?) -> 如果让 AudioFileURLTemp = object?.objectForKey("SongFile")?.url{ AudioPlayer = AVPlayer(URL: NSURL(string: AudioFileURLTemp!)) AudioPlayer.play() 则无效

标签: swift parse-platform avaudioplayer avplayer uislider


【解决方案1】:

试试这个

var query = PFQuery(className:"Song1")
query.getObjectInBackgroundWithId("objectId") {
    (object : PFObject?, error : NSError?) -> Void in
        if let AudioFileURLTemp = object?.objectForKey("SongFile")?.url {
            AudioPlayer = AVPlayer(URL: NSURL(string: AudioFileURLTemp!))
            AudioPlayer.play()
        }
    )
}

【讨论】:

  • 不起作用,我想要做的就是能够使用暂停,播放,停止,重播,并使用滑块控制来自解析的音频文件的音频播放,但它似乎是比我想象的要难。
【解决方案2】:

类 ViewController: UIViewController, AVAudioPlayerDelegate, AVAudioRecorderDelegate {

var goAudio = AVPlayer()
var show = AVAudioPlayer()

var soundData : NSData!

override func viewDidLoad() {
    super.viewDidLoad()
    streamShow()
}

@IBAction func playShow(sender: UIButton) {
    self.show.prepareToPlay()
    self.show.volume = 1.0
    self.show.delegate = self
    self.show.play()
}

func streamShow(){
    var query = PFQuery(className:"sveglia")
    query.getObjectInBackgroundWithId("hQHeNCqccH") {
        (object : PFObject?, error : NSError?) -> Void in
        if let AudioFileURLTemp = object?.objectForKey("audio")?.url {

            self.goAudio = AVPlayer(URL: NSURL(string: AudioFileURLTemp!))

            let fileURL = NSURL(string: AudioFileURLTemp!)
            var error: NSError?
            let data = NSData(contentsOfURL: fileURL!)
            self.show = AVAudioPlayer(data: data, error: &error)

        }
    }
}

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多