Feat: dash Quality and bili hevc
This commit is contained in:
parent
eb966b974f
commit
0bdc1937af
|
@ -12,6 +12,7 @@
|
|||
"@vueuse/router": "^10.5.0",
|
||||
"artplayer": "^5.0.9",
|
||||
"artplayer-plugin-danmuku": "^5.0.1",
|
||||
"artplayer-plugin-dash-quality": "^2.0.0",
|
||||
"axios": "^1.4.0",
|
||||
"dashjs": "^4.7.2",
|
||||
"element-plus": "^2.3.8",
|
||||
|
@ -1871,6 +1872,11 @@
|
|||
"resolved": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.0.1.tgz",
|
||||
"integrity": "sha512-b6/Y4/+X0rNmnqS5+zzQgow+WW4iVT8eFv4LAUzJgIyORIcf5Gn00Dy0PZ+kwGb1VJy0CUCRK6gVVvh0tWsRAg=="
|
||||
},
|
||||
"node_modules/artplayer-plugin-dash-quality": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/artplayer-plugin-dash-quality/-/artplayer-plugin-dash-quality-2.0.0.tgz",
|
||||
"integrity": "sha512-bQ1cGEX54O1s/9OVuFAHnV/zqDdOgM4uNPBzl3F1cqPUAxWzc1dfLt9OFTyEWCWyNBN9A5xjx7bRK4vevxcrdg=="
|
||||
},
|
||||
"node_modules/async-validator": {
|
||||
"version": "4.2.5",
|
||||
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
"@vueuse/router": "^10.5.0",
|
||||
"artplayer": "^5.0.9",
|
||||
"artplayer-plugin-danmuku": "^5.0.1",
|
||||
"artplayer-plugin-dash-quality": "^2.0.0",
|
||||
"axios": "^1.4.0",
|
||||
"dashjs": "^4.7.2",
|
||||
"element-plus": "^2.3.8",
|
||||
|
|
|
@ -47,18 +47,18 @@ watchers.push(
|
|||
);
|
||||
|
||||
const playMpd = (player: HTMLMediaElement, url: string, art: any) => {
|
||||
import("dashjs")
|
||||
.then((dashjs) => dashjs.default)
|
||||
.then((dashjs) => {
|
||||
if (dashjs.supportsMediaSource()) {
|
||||
const dash = dashjs.MediaPlayer().create();
|
||||
dash.initialize(player, url, false);
|
||||
art.dash = dash;
|
||||
art.on("destroy", () => dash.reset());
|
||||
} else {
|
||||
art.notice.show = "Unsupported playback format: mpd";
|
||||
}
|
||||
});
|
||||
import("@/utils/dash").then((dash) => {
|
||||
if (dash.isSupported()) {
|
||||
const plugin = dash.newDashQualityPlugin();
|
||||
plugin(art);
|
||||
const d = dash.newDash();
|
||||
d.initialize(player, url, false);
|
||||
art.dash = d;
|
||||
art.on("destroy", () => d.destroy());
|
||||
} else {
|
||||
art.notice.show = "Unsupported playback format: mpd";
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const playFlv = (player: HTMLMediaElement, url: string, art: any) => {
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
import dashjs from "dashjs";
|
||||
import artplayerPluginDashQuality from "artplayer-plugin-dash-quality";
|
||||
|
||||
export function newDash(): dashjs.MediaPlayerClass {
|
||||
return dashjs.MediaPlayer().create();
|
||||
}
|
||||
|
||||
export function isSupported(): boolean {
|
||||
return dashjs.supportsMediaSource();
|
||||
}
|
||||
|
||||
export function newDashQualityPlugin(): (art: Artplayer) => {
|
||||
name: "artplayerPluginDashQuality";
|
||||
} {
|
||||
return artplayerPluginDashQuality({
|
||||
control: true,
|
||||
setting: true,
|
||||
getResolution: (level) => level.height + "P",
|
||||
title: "画质",
|
||||
auto: "自动"
|
||||
});
|
||||
}
|
|
@ -641,6 +641,9 @@ const playerUrl = computed(() => {
|
|||
return `${window.location.origin}/api/movie/live/${room.currentMovie.id}.m3u8`;
|
||||
}
|
||||
} else if (room.currentMovie.base?.proxy) {
|
||||
if (room.currentMovie.base!.vendorInfo?.bilibili) {
|
||||
return `${window.location.origin}/api/movie/proxy/${roomID.value}/${room.currentMovie.id}?t=hevc`;
|
||||
}
|
||||
return `${window.location.origin}/api/movie/proxy/${roomID.value}/${room.currentMovie.id}`;
|
||||
} else {
|
||||
return room.currentMovie.base!.url;
|
||||
|
|
Loading…
Reference in New Issue