我正在构建一个播放 HLS 视频的 NextJS 网站。
太长了;如何覆盖 Safari 的原生 HLS 引擎?需要哪些玩家选项?我的(下)不起作用!
要在质量之间切换,我使用:https ://github.com/videojs/videojs-contrib-quality-levels
在其他浏览器(非 Safari)中,质量选择器工作正常,因为它player.qualityLevels()
包含所需的质量。
但是,在 Safari(桌面版)中,数组 ( qualityLevels()
) 为空,因此我无法在质量之间切换。
playerOption
我这里有这个:
const videoJsOptions = {
autoplay: false,
preload: "auto",
controls: true,
poster: thumbnailURL,
sources: [
{
src: liveURL,
type: "application/x-mpegURL",
withCredentials: false,
},
],
html5: {
nativeAudioTracks: false,
nativeVideoTracks: false,
hls: {
overrideNative: true,
},
},
};
Run Code Online (Sandbox Code Playgroud)
这对于这个人的项目来说效果很好(虽然没有反应):https ://jsfiddle.net/geukvmhn/
在 Safari 中查看;显示出品质,但对我来说根本不起作用。基本上,我正在努力覆盖 Safari(桌面)中的本机 HLS 引擎。
此代码AVPlayer
仅适用于Playground
import AVFoundation
var player = AVPlayer()
let playerItem = AVPlayerItem(url: URL(string: "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3")!)
player = AVPlayer(playerItem: playerItem)
player.play()
Run Code Online (Sandbox Code Playgroud)
当我尝试在物理设备上的 SwiftUI 应用程序上运行它时,使用以下代码:
Button(action:{
var player = AVPlayer()
let playerItem = AVPlayerItem(url: URL(string: "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3")!)
player = AVPlayer(playerItem: playerItem)
player.play()
print("Works")
},label:{
Image("play")
})
Run Code Online (Sandbox Code Playgroud)
它将Works打印到控制台。但是,它不会在设备上播放任何声音。
希望得到任何帮助,在这里找不到任何东西。
非常感谢!