This commit is contained in:
yumoqing 2025-01-12 22:13:54 +08:00
parent 52eccca8cd
commit a2e0abb524
2 changed files with 50 additions and 31 deletions

View File

@ -5,22 +5,22 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="{{entire_url('/bricks/3parties/xterm.css')}}" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/js-docx-viewer/dist/css/docxviewer.min.css">
<link href="{{entire_url('/bricks/3parties/video-js.css')}}" rel="stylesheet" />
<link rel="stylesheet" href="{{entire_url('/bricks/css/bricks.css')}}">
<link rel="stylesheet", href="{{entire_url('/css/myapp.css')}}">
</head>
<body>
<!--
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/js-docx-viewer/dist/css/docxviewer.min.css">
<script src="//cdn.bootcdn.net/ajax/libs/eruda/2.3.3/eruda.js"></script>
<script>eruda.init();</script>
<script src="https://cdn.jsdelivr.net/npm/onnxruntime-web/dist/ort.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@ricky0123/vad-web@0.0.7/dist/bundle.min.js"></script>
<script src="https://unpkg.com/docx-js@3.2.0/lib/docx.min.js"></script>
-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.14.305/pdf.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mammoth/1.4.2/mammoth.browser.min.js"></script>
-->
<script type="text/javascript" src="https://registry.npmmirror.com/echarts/5.5.1/files/dist/echarts.min.js"></script>
<script src="{{entire_url('/bricks/3parties/marked.min.js')}}"></script>

View File

@ -64,6 +64,7 @@ bricks.Video = class extends bricks.Layout {
}
}
auto_play(){
return;
schedule_once(this._auto_play.bind(this), 0.5);
}
_auto_play(){
@ -74,6 +75,10 @@ bricks.Video = class extends bricks.Layout {
play(){
console.log('Video:play() called....');
this.player.play();
// this.player.muted(false);
}
unmuted(){
this.player.muted(false);
}
set_fullscreen(){
if (this.fullscreen){
@ -101,16 +106,10 @@ bricks.Video = class extends bricks.Layout {
this.player.on('ended', this.report_ended.bind(this));
this._set_source();
this.player.ready(this.set_fullscreen.bind(this));
/*
console.log('=======', this.autoplay, '========');
if (this.autoplay){
this.player.autoplay = true;
this.player.muted = true;
this.player.ready(this.auto_play.bind(this));
} else {
console.log('autoplay=', this.autoplay, this.auto_play);
// this.player.ready(this.auto_play.bind(this));
this.auto_play();
}
*/
}
}
report_ended(){
@ -160,6 +159,7 @@ bricks.Video = class extends bricks.Layout {
this.video_body.cur_url = url;
this.video_body.cur_vtype = vtype;
this._set_source();
this.play();
}
}
set_url(url){
@ -180,54 +180,73 @@ bricks.Iptv = class extends bricks.VBox {
schedule_once(this.build_subwidgets.bind(this), 0.1);
}
async build_subwidgets(){
console.log('build_subwidgets called');
var jc = new bricks.HttpJson();
this.user_data = await jc.get(iptv_data_url);
this.video = new bricks.Video({url:this.iptv_data.url});
this.title_w = new bricks.Text({text:this.iptv_data.title, wrap:false});
this.deviceid = bricks.deviceid('iptv')
this.user_data = await jc.httpcall(this.iptv_data_url, {
params:{
deviceid:this.deviceid
},
method:'GET'
});
console.log('this.user_data =', this.user_data);
this.video = new bricks.Video({
autoplay:true,
url:this.user_data.url
});
this.title_w = new bricks.Text({text:this.user_data.tv_name, wrap:false});
this.add_widget(this.title_w);
this.add_widget(this.video);
this.video.bind('play_ok', this.report_play_ok.bind(this));
this.video.bind('play_failed', this.report_play_failed.bind(this));
}
async report_play_ok(){
console.log(this.user_data, 'channel playing ...', this.playok_url);
if (this.playok_url){
var desc = {
"widgettye":"urlwidget",
"options":{
"url":this.playok_url,
"params":this.user_data
}
}
var w = widgetBuild(desc, this);
if (w){
var ht = new bricks.HttpText();
var resp = ht.httpcall(this.playok_url,{
params:{
deviceid:this.deviceid,
channelid:this.user_data.id
},
method:"GET"
});
if (resp != 'Error'){
console.log('report playok ok');
} else {
console.log('report playok failed');
}
} else {
console.log('this.playok_url not defined', this.playok_url);
}
}
async report_play_failed(){
console.log(this.user_data, 'channel play failed ...');
if (this.playfailed_url){
var desc = {
"widgettye":"urlwidget",
"options":{
"url":this.playfailed_url,
"params":this.user_data
}
}
var w = widgetBuild(desc, this);
if (w){
var ht = new bricks.HttpText();
var resp = ht.httpcall(this.playfailed_url,{
params:{
deviceid:this.deviceid,
channelid:this.user_data.id
},
method:"GET"
});
if (resp != 'Error'){
console.log('report playfailed ok');
} else {
console.log('report playfailed failed');
}
} else {
console.log('this.playfailed_url not defined', this.playfailed_url);
}
}
setValue(data){
this.user_data = data;
this.title_w.set_text(data.tv_name);
this.video.set_url(data.url);
}
}
bricks.Factory.register('Video', bricks.Video);
bricks.Factory.register('Iptv', bricks.Iptv);