在 Swift 中使用 EZAudio 框架播放音频文件
Posted
技术标签:
【中文标题】在 Swift 中使用 EZAudio 框架播放音频文件【英文标题】:Play audio file using EZAudio Framework in Swift 【发布时间】:2016-03-31 11:57:16 【问题描述】:您好,我正在尝试将以下 Objective-C 代码转换为 Swift:
EZAudioFile *audioFile = [EZAudioFile audioFileWithURL:NSURL]; //required type NSURL
[self.player playAudioFile:audioFile];
但我无法让它工作。
let audioFile = EZAudioFile.url(EZAudioFile) //required type EZAudioFile, so I am unable to pass the NSURL of the audio file here.
player.play()
错误是:Cannot convert value of type 'NSURL' to expected argument type 'EZAudioFile'
以上objective-C代码引用自这里:EZAudio Example:Record File
【问题讨论】:
我没有使用过EZAudioFile
,但我已经让AVAudioPlayer
在 Swift 中正常工作。这是一些代码(在答案中向下滚动)以供参考。 ***.com/a/32879428/3681880
我也很快做到了。但我坚持使用 EZAudio 的原因是我使用它的一种方法在录制过程中创建波形。我可以使用 AVAudioPlayer 录制、播放音频。所以我认为探索这个框架(EZAudio)来使用它的所有方法会更好。
啊,我明白了。听起来不错。我想知道一些应用程序是如何制作波形的。我希望你能成功。
【参考方案1】:
我没有测试,所以我可能错了,但我认为您没有使用正确的语法:EZAudioFile.url(EZAudioFile)
没有调用您正在考虑的初始化程序。
我看到in the EZAudioFile source 确实有一个音频文件 URL 的初始化程序:
+ (instancetype)audioFileWithURL:(NSURL *)url
所以我的猜测是 Swift 中的语法应该是:
let audioFile = EZAudioFile(audioFileWithURL: yourURL)
另外,它似乎只是普通 URL init 的包装器,应该是这样的:
let audioFile = EZAudioFile(URL: yourURL)
【讨论】:
精准! Xcode 的自动补全功能吸引了我。 Swift 中[self.player playAudioFile:audioFile];
的替代品是什么?
应该是similar: self.player.playAudioFile(audioFile)
我想(再次,只是在阅读源代码时猜测,因为我现在无法访问 EZ 安装)。
非常棘手的快速转换。结果是:player = EZAudioPlayer(EZAudioFile:audioFile)
。感谢您提供帮助的 cmets!以上是关于在 Swift 中使用 EZAudio 框架播放音频文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 EZAudio 在 Swift 中获取 FFT 数据?
EZAudio - 如何使用 EZAudioPlotGL 根据视图大小更改相同的波形大小
iOS - 使用音乐的背景播放功能,使用MediaPlayer框架播放影片(Swift)