【问题标题】:Audio live streaming Swift音频直播 Swift
【发布时间】:2017-02-28 21:55:50
【问题描述】:

我需要为广播电台构建一个播放音频直播 URL 的应用程序。

该 URL 可用,但我找不到在我的应用程序中实现它的好方法。

我已经尝试过这种方式,但播放器不会提供任何声音,尽管我确信它正在加载 URL(它在模拟器上尝试时会播放流,但在真实设备上却不会)

这是我的代码:

var player : AVPlayer!

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    let url = "http://listen.shoutcast.com/radiodeltalebanon"
    player = AVPlayer(url: URL(string: url)!)
    player.volume = 1.0
    player.rate = 1.0
    player.play()
}

在应用程序中,状态栏中的 4G 或 Wifi 图标旁边的指示灯显示,如果我调高手机音量,则音量调高,而不是铃声。

这意味着它实际上正在播放,但没有声音可用。

谁能帮帮我?

谢谢。

【问题讨论】:

    标签: ios objective-c swift


    【解决方案1】:

    原来我错过了这个:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        do {
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
            print("AVAudioSession Category Playback OK")
            do {
                try AVAudioSession.sharedInstance().setActive(true)
                print("AVAudioSession is Active")
    
            } catch let error as NSError {
                print(error.localizedDescription)
            }
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    }
    

    【讨论】:

    • 谢谢,但 XCode 说能源影响非常高
    • @Alwin 你找到其他解决方案了吗?
    【解决方案2】:

    对于 Swift 4.2:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        do {
            try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)
            try AVAudioSession.sharedInstance().setActive(true)
        } catch {
            print(error)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-05
      • 2013-06-03
      • 2019-05-10
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多