mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-15 10:40:28 +08:00
pikvm/pikvm#481: check webrtc caps
This commit is contained in:
parent
c162bb7ea4
commit
fdf3c0f8d4
@ -126,6 +126,28 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<hr>
|
<hr>
|
||||||
|
<div class="hidden" id="stream-message-no-webrtc">
|
||||||
|
<div class="text">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td rowspan="2"><img class="sign " src="/share/svg/warning.svg"></td>
|
||||||
|
<td style="line-height:1.5"><b>WebRTC is not supported by this browser</b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
<div class="hidden" id="stream-message-no-h264">
|
||||||
|
<div class="text">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td rowspan="2"><img class="sign " src="/share/svg/warning.svg"></td>
|
||||||
|
<td style="line-height:1.5"><b>H.264 is not supported by this browser</b></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
<table class="kv" style="width: calc(100% - 20px)">
|
<table class="kv" style="width: calc(100% - 20px)">
|
||||||
<tr class="feature-disabled" id="stream-resolution">
|
<tr class="feature-disabled" id="stream-resolution">
|
||||||
<td>Resolution:</td>
|
<td>Resolution:</td>
|
||||||
|
|||||||
@ -16,6 +16,12 @@ li(class="right")
|
|||||||
button(data-force-hide-menu id="gpio-button-__wol__" class="gpio-button small" data-channel="__wol__"
|
button(data-force-hide-menu id="gpio-button-__wol__" class="gpio-button small" data-channel="__wol__"
|
||||||
data-confirm="Are you sure to send Wake-on-LAN packet to the server?") • WoL
|
data-confirm="Are you sure to send Wake-on-LAN packet to the server?") • WoL
|
||||||
hr
|
hr
|
||||||
|
div(id="stream-message-no-webrtc" class="hidden")
|
||||||
|
+menu_message("warning", "WebRTC is not supported by this browser")
|
||||||
|
hr
|
||||||
|
div(id="stream-message-no-h264" class="hidden")
|
||||||
|
+menu_message("warning", "H.264 is not supported by this browser")
|
||||||
|
hr
|
||||||
table(class="kv" style="width: calc(100% - 20px)")
|
table(class="kv" style="width: calc(100% - 20px)")
|
||||||
tr(id="stream-resolution" class="feature-disabled")
|
tr(id="stream-resolution" class="feature-disabled")
|
||||||
td Resolution:
|
td Resolution:
|
||||||
|
|||||||
@ -454,15 +454,24 @@ export function Streamer() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
self.setJanusEnabled = function(enabled) {
|
self.setJanusEnabled = function(enabled) {
|
||||||
let supported = !!window.RTCPeerConnection;
|
let has_webrtc = !!window.RTCPeerConnection;
|
||||||
|
|
||||||
|
let has_h264 = true;
|
||||||
|
if ($("stream-video").canPlayType) {
|
||||||
|
has_h264 = $("stream-video").canPlayType("video/mp4; codecs=\"avc1.42E01F\"");
|
||||||
|
}
|
||||||
|
|
||||||
let set_enabled = function() {
|
let set_enabled = function() {
|
||||||
__janus_enabled = (enabled && supported && _Janus !== null);
|
tools.hidden.setVisible($("stream-message-no-webrtc"), !has_webrtc);
|
||||||
|
tools.hidden.setVisible($("stream-message-no-h264"), !has_h264);
|
||||||
|
__janus_enabled = (enabled && has_webrtc && _Janus !== null); // Don't check has_h264 for sure
|
||||||
tools.feature.setEnabled($("stream-mode"), __janus_enabled);
|
tools.feature.setEnabled($("stream-mode"), __janus_enabled);
|
||||||
tools.info(`Stream: Janus WebRTC state: enabled=${enabled}, supported=${supported}, imported=${!!_Janus}`);
|
tools.info(`Stream: Janus WebRTC state: enabled=${enabled}, webrtc=${has_webrtc}, h264=${has_h264}, imported=${!!_Janus}`);
|
||||||
tools.radio.clickValue("stream-mode-radio", tools.storage.get("stream.mode", "mjpeg"));
|
tools.radio.clickValue("stream-mode-radio", tools.storage.get("stream.mode", "mjpeg"));
|
||||||
self.setState(__state);
|
self.setState(__state);
|
||||||
};
|
};
|
||||||
if (enabled && supported) {
|
|
||||||
|
if (enabled && has_webrtc) {
|
||||||
if (_Janus === null) {
|
if (_Janus === null) {
|
||||||
import("./janus.js").then((module) => {
|
import("./janus.js").then((module) => {
|
||||||
module.Janus.init({
|
module.Janus.init({
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user