swift - 声音在模拟器中播放,但不在物理设备上播放

标签 swift avfoundation avaudioplayer simulator

我的 xcode 声音不是在 ipad 上播放,而是在 xcode 模拟器上播放。我从应用程序商店下载了我的应用程序,但声音也没有。我尝试了多种文件格式,包括 mp3、aac、wav 等,但都无法播放。我不知道发生了什么,因为我以前使用过这段代码并且运行良好。

import UIKit;import AVFoundation

class ViewController: UIViewController {

    var player : AVAudioPlayer?
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        let path = Bundle.main.path(forResource: "bell.mp3", ofType:nil)!
        let url = URL(fileURLWithPath: path)

        do {
            print("ran")
            player = try AVAudioPlayer(contentsOf: url)
            player?.play()
        } catch {
            // couldn't load file :(
        }
    }


}

最佳答案

仔细检查您发布的代码是否落入 catch block 中。如果产生错误,您应该在控制台中看到错误。

do {
    print("ran")
    player = try AVAudioPlayer(contentsOf: url)
    player?.play()
} catch let error {
    print(error.localizedDescription)
}

您还应该检查设备是否处于静音状态。为了防止这种情况,您可以使用以下命令始终播放音频,因为 Audio Session 类别将设置为 .playback

do {
    try AVAudioSession.sharedInstance().setCategory(.playback)
} catch let error {
    print(error.localizedDescription)
}

关于swift - 声音在模拟器中播放,但不在物理设备上播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67257086/

相关文章:

swift - 使用 NSClassFromString ("MyUIViewController"的结果进行动态转换)

ios - 如何在客户类播放声音并识别声音播放结束

ios - 在背景暂停音乐中播放声音提醒序列,不会被其他声音停止

ios - iOS 中检查音频是否已结束播放

ios - 无法让自定义相机显示正在捕获的内容的预览

iOS AVFoundation/AVAudioRecorder 未知崩溃

swift - 如何在 WatchOS 上构建带有音频反馈的锻炼应用程序?

ios - googleSignIn 的 XCUITest 编译错误

ios - 无法在 TextField 中键入

ios - UIView 的 shadowpath 颜色没有改变