iOS AVAudioSessionCategory意外行为

时间:2018-09-03 12:55:16

标签: ios swift ios-simulator swift4 avaudiosession

尝试在音频会话中使用AVAudioSessionCategorySoloAmbient类别时遇到问题。

我的意图是在ViewController第一次打开时播放声音。但仅当铃声已打开

但是,无论铃声是打开还是关闭,声音都会播放。

我无权访问设备,所以我只在模拟器上进行测试。

这是一个全新的项目,所有内容都是XCode自动生成的,仅更改了以下文件

ViewController如下

    import UIKit
    import AVFoundation

    class ViewController: UIViewController {

        var audioPlayer: AVAudioPlayer?

        override func viewDidLoad() {
            super.viewDidLoad()
            do {
                try self.playSound(file: "startup", ext: "wav")
            } catch {
                print("Something went wrong")
            }
        }

        func playSound(file: String, ext: String) throws {
            let path = Bundle.main.path(forResource: file, ofType: ext)!
            let url = URL(fileURLWithPath: path)

            let session = AVAudioSession.sharedInstance()
            try session.setCategory(AVAudioSessionCategorySoloAmbient)
            try session.setActive(true)

            self.audioPlayer = try AVAudioPlayer(contentsOf: url)
            self.audioPlayer?.prepareToPlay()
            self.audioPlayer?.play()
        }
    }

据我了解,无论如何,我想要的应该是默认行为。所以我也试过省略以下几行。但是,同样的事情也会发生。

let session = AVAudioSession.sharedInstance()
try session.setCategory(AVAudioSessionCategorySoloAmbient)
try session.setActive(true)

我正在使用Swift 4.1

0 个答案:

没有答案