ios - swift 3 : Playing Audio based on a string variable

标签 ios swift xcode

所以我看到在 Swift 3 中播放音频的方式是

do {
    audioPlayer = try AVAudioPlayer(contentsOf: URL.init(fileURLWithPath: Bundle.main.path(forResource: "name", ofType: "mp3")!))
    audioPlayer.prepareToPlay()
    audioPlayer.play()
}
catch {
print(error)
}

但我想要一个名为 string 的变量,而不是设置“name”字符串,它可以是与不同文件名对应的 100 个不同字符串之一。 Swift 不允许通过简单地将 string 代替“name”来实现这一点,那么修复方法是什么?

最佳答案

我不明白为什么这不起作用:

var audioPlayer: AVAudioPlayer!
let string = "name"
if let path = Bundle.main.path(forResource: string, ofType: "mp3") {
    let url = URL(fileURLWithPath: path)
    do {
        audioPlayer = try AVAudioPlayer(contentsOf: url)
        audioPlayer.prepareToPlay()
        audioPlayer.play()
    }
    catch {
        print(error)
    }
}

无论如何,调用字符串变量 string 可能不是最佳实践。也许您应该将其称为“资源”、“资源名称”或“文件名称”?

关于ios - swift 3 : Playing Audio based on a string variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42985602/

相关文章:

javascript - 嵌入 Flash 以与 IOS 一起工作

swift - 使用 Swift 计算属性 vs.访问器和修改器函数

ios - Xcode 8 如何添加语言?

ios - Xcode Storyboard属性检查器中的 "Installed"复选框

Xcode 身份验证失败,因为将 iOS 版本更改为 14 后未提供凭据

iOs - 解析 - 处理许多推送通知

ios - 如何引用通过代码添加的 UILabel,以便在 iPad 旋转时更新位置?

ios - 按下按钮时更改行的颜色 - 快速

xcode - 使用 Swift 将本地文件夹挂载为卷

swift - UIScrollView 无法在使用 Swift 的 UIView 中工作