从 Parse.com 播放音频

Posted

技术标签:

【中文标题】从 Parse.com 播放音频【英文标题】:Playing Audio From Parse.com 【发布时间】:2015-02-08 02:35:35 【问题描述】:

我正在尝试播放我在解析时保存的音频文件。我从我保存解析的对象中获取来自 PFFile 的 url。当我运行应用程序时,avplayer 不会产生音频。我通过下面的第一个代码 sn-p 测试了 avplayer 是否正在播放,它打印出“正在播放”,这意味着播放器正在播放但没有音频。我还尝试设置 avplayer 的音量,但没有帮助。不明白如果有人愿意帮助我,为什么它不会播放。

音频文件网址:http://files.parsetfss.com/292b6f11-5fee-4be7-b317-16fd494dfa3d/tfss-ccc3a843-967b-4773-b92e-1cf2e8f3c1c6-testfile.wav

如果正在播放,此代码将停止 avplayer:

if (player.rate > 0) && (player.error == nil) 
            // player is playing
            println("Playing")
         else 
            println("Not Playing")
        

AVPlayer 代码:

let objectAudio: PFObject = object as PFObject
let parseAudio: PFFile = objectAudio.valueForKey("audioFileParse") as PFFile
let audioPath: String = parseAudio.url                       
let urlParse: NSURL = NSURL(fileURLWithPath: audioPath)!

player = AVPlayer(URL: urlParse)
println(player) //prints out <AVPlayer: 0x79e863c0>
player.volume = 1.0
player.play()

【问题讨论】:

【参考方案1】:

您在这里使用错误的方法获取 NSURL,您尝试从指向远程服务器上资源的 URL 创建本地文件 URL。

您应该使用接受 URL 字符串作为输入的初始化程序,而不是 NSURL(fileURLWithPath: audioPath)(参见此处 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/#//apple_ref/occ/instm/NSURL/initWithString:)

您当前的代码将指向本地文件系统上不存在的本地资源,而它应该指向 Parse 服务器上的文件。

仅供参考,URLWithStringfileURLWithPath的区别What is difference between URLWithString and fileURLWithPath of NSURL?

【讨论】:

非常感谢您使用 NSURL(string: url) 解决了我的问题。再次感谢!

以上是关于从 Parse.com 播放音频的主要内容,如果未能解决你的问题,请参考以下文章

从 x 到 y 秒播放音频

从数据库播放多个音频文件

React Native Expo 音频 |从最新位置播放直播

从远程 url 播放音频文件时如何生成音频频谱?

如何从开始播放音频播放器?

如何从本地文件播放音频?