如何在swiftUI中播放http数据流中的音频



我现在开发RadioStream应用程序。我使用SwiftAudioPLayer框架,但几秒钟后播放器停止了。因此,在swiftUI中播放HTTP流中的音频可能是另一种方式。还是我需要将代码从Uikit迁移到swiftUI?

我是swiftUI和iOS开发的新手,非常感谢您的提前回复。谢谢!

SwiftAudioPlayer框架代码,代码来源:https://github.com/tanhakabir/SwiftAudioPlayer#realtime-音频操作***

如何在swiftUI中播放广播流URL文件?


import SwiftUI
import SwiftAudioPlayer


func playMusic() {
let url = URL(string:"http://online.radiorecord.ru:8102/rus_128")!
SAPlayer.shared.startRemoteAudio(withRemoteUrl: url)
SAPlayer.shared.play()
}
}

使用https而不是您正在使用的http,因为:

"iOS 9.0和macOS 10.11及更高版本使用应用程序传输安全(ATS(用于使用URLSession建立的所有HTTP连接。ATS要求HTTP连接使用HTTPS(RFC 2818(">

然而;

"您可以通过添加应用程序信息属性列表的NSAppTransportSecurity密钥文件,并提供ATS配置字典作为值">

这就是在Info.plist文件中添加异常。

参见";https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity">

对于从URL播放音频,我找到了这个答案。希望会帮助别人。

import AVFoundation
...
var player = AVPlayer()
var playerItem: AVPlayerItem!

func initPlayer(url: String) {
guard let url = URL.init(string: url) else { return }
let playerItem = AVPlayerItem(url: url)
player = AVPlayer.init(playerItem: playerItem)
player.play()

}
func play() {
isPlaying.toggle()
player.play()
}

并使用您的URL初始化播放器,祝您好运。

相关内容

  • 没有找到相关文章