Tizen 中的 HTML5 视频元素非常慢(三星智能电视开发)

Posted

技术标签:

【中文标题】Tizen 中的 HTML5 视频元素非常慢(三星智能电视开发)【英文标题】:HTML5 video element extremely slow in Tizen (Samsung Smart-Tv development) 【发布时间】:2019-10-02 02:04:46 【问题描述】:

我最近开始在 Tizen 环境和 SDK 中进行编程,我正在尝试创建一个(三星)智能电视应用程序,它采用 mp4 媒体链接并以视频播放器的形式显示这些链接,问题是每当我使用 html5 视频标签时,应用程序需要很长时间(2-4 分钟)才能加载,而且很多时候它甚至根本没有加载。

代码已经在 J​​sFiddle 和本地测试过,在那里运行良好,但每当我尝试在 Tizen 项目(在三星电视模拟器中运行)的 index.html 中执行相同的代码时,它都会显示我刚刚解释的行为(极慢/崩溃)。

以下是我尝试过的一些示例:

<html>
    <head>
        <link href="https://vjs.zencdn.net/7.5.4/video-js.css" rel="stylesheet">
    </head>

    <body>
        <video id='my-video' class='video-js' controls preload='auto' 
        width='640' height='264'
        poster="download.jpg" data-setup=''>
            <source src='sample.mp4' type='video/mp4'>
            <p class='vjs-no-js'>
                To view this video please enable javascript, and consider upgrading to a web browser that
                <a href='https://videojs.com/html5-video-support/' target='_blank'>supports HTML5 video</a>
           </p>
       </video>
       <script src='https://vjs.zencdn.net/7.5.4/video.js'></script>
   </body>
</html>

我也试过不使用video-js,我试过只用video元素,结果一样,有时能用,有时不能用,什么时候能用,得等很久实际加载。根据文档,支持 HTML5,并且他们发布的指南甚至“鼓励”使用 video 标签。我也尝试过使用 javascript 生成 HTML 并尝试让它像那样工作,但没有运气。

【问题讨论】:

为什么需要 video.js 脚本?删除它,然后重试... @burakk 如果你想看全文,我特别说“我也试过不使用video-js,我试过只使用video元素” 当您使用 Tizen 开发项目时,他们是否有一个实施示例。假设它们比微软更符合标准可能并不安全。 videojs 可用于允许使用 Http Live Stream 协议的 rtmp 编码视频在视频标签中工作...***.com/questions/5858936/html5-live-streaming。 ...浏览器不会看到可能会进入电视的 rtmp 提要 添加桌面浏览器不直接支持 rtmp 编码的视频 - 如果他们这样做会很好,因为如果他们支持,您可以将智能手机视频流式传输到本地 html5 视频标签...... rtmp 是缺少寻找能力;这是由 youtube 等服务器解决的,将视频分成小视频,每个视频都在其中播放,浏览器不需要等待整个文件......就像你所描述的那样。好像您的模拟器正在模拟 HLS(http 实时流)。在播放缓冲区中的视频部分并请求 mor 之前,模拟器似乎期待 EOF 【参考方案1】:

可能是模拟器、编解码器等的视频标签实现。我假设您无法在实际的 Tizen TV 设备上测试代码,所以我建议先添加事件侦听器,然后看看发生了什么试试AVPlay API,我建议在你的应用中实现它。

<body>
 <video id='video' width='700' height='400'
   poster='yourPosterURI' src='yourVideoURI'
   controls style='background:black'>
 </video>
</body>    


var videoElement = document.getElementById('video');

videoElement.addEventListener('loadeddata', function() 
   console.log('Video loaded.');
);

videoElement.addEventListener('timeupdate', function() 
   console.log('Current time: ' + videoElement.currentTime);
);

videoElement.addEventListener('seeked', function() 
    console.log('Seek operation completed.');
    videoElement.play();
);

videoElement.addEventListener('stalled', function() 
    console.log('Video stalled.');
);

videoElement.addEventListener('ended', function() 
    console.log('Video ended.');
);

【讨论】:

以上是关于Tizen 中的 HTML5 视频元素非常慢(三星智能电视开发)的主要内容,如果未能解决你的问题,请参考以下文章

三星为其基于 RISC-V的 Tizen平台移植.NET

Tizen Studio 模拟器和设备管理器不工作

在 Android WebView 中拦截 HTML5 视频源请求

停止在三星设备上的科尔多瓦 webview 中无休止地缓冲 html5 视频

三星投资50万美元加入Linux联盟

如何让WebView中的Html5 Video全屏播放