无法在 android "internet" 应用或 android chrome 中中止 MJPEG
Cant abort MJPEG in android "internet" app, or android chrome
我有一个 python/flask 应用程序可以将 mjpeg 视频发送到一个元素。
它在流媒体方面工作正常,但我在中止视频时遇到问题。要在我的 phone (android) 中止视频,我必须单击 link 到另一个页面,否则流会继续。
目前我正在使用 javascript 控制流。将 "src" 设置为来自摄像头的静态图像的 url,或视频流的 url。
但在 src-change 之间,我首先将其更改为“#”。
使用 flask 的一个问题是,当 1 个客户端正在接收流(使用生成器和收益)时,没有其他客户端无法与服务器通信。这可能是问题的根源?!
因此,使用 javascript 我使用以下代码控制流:
if (streaming==false){
document.getElementById(img_id).src=C_vidsource;
streaming = true;
} else {
var currDate = new Date();
document.getElementById(img_id).src="#";
document.getElementById(img_id).src=C_statimage + "?" + currDate.getTime();
streaming = false;
}
我用一个简单的
来控制它
我认为 android 的网络浏览器与我在计算机上使用的不同。它似乎在更改页面上的任何内容之前尝试下载内容。所以它让视频流继续播放,直到加载新图像。但是在流停止之前不会加载新图像。
有办法解决吗?
谢谢!
发布问题后我立即找到了解决方案。
我在两个 src 更改之间添加了延迟。
之后:
document.getElementById(img_id).src="";
我加了
sleep(1000);
而 sleep 是我创建的一个函数(很脏):
function sleep(ms){
stoptime = Date.now() + ms;
while(Date.now() < stoptime){ }
return;
}
我想对于更长的睡眠来说,这不是一个好的解决方案,但它解决了我的问题,或者至少给了我一个关于要搜索什么的提示。
我有一个 python/flask 应用程序可以将 mjpeg 视频发送到一个元素。 它在流媒体方面工作正常,但我在中止视频时遇到问题。要在我的 phone (android) 中止视频,我必须单击 link 到另一个页面,否则流会继续。
目前我正在使用 javascript 控制流。将 "src" 设置为来自摄像头的静态图像的 url,或视频流的 url。 但在 src-change 之间,我首先将其更改为“#”。
使用 flask 的一个问题是,当 1 个客户端正在接收流(使用生成器和收益)时,没有其他客户端无法与服务器通信。这可能是问题的根源?!
因此,使用 javascript 我使用以下代码控制流:
if (streaming==false){
document.getElementById(img_id).src=C_vidsource;
streaming = true;
} else {
var currDate = new Date();
document.getElementById(img_id).src="#";
document.getElementById(img_id).src=C_statimage + "?" + currDate.getTime();
streaming = false;
}
我用一个简单的
来控制它我认为 android 的网络浏览器与我在计算机上使用的不同。它似乎在更改页面上的任何内容之前尝试下载内容。所以它让视频流继续播放,直到加载新图像。但是在流停止之前不会加载新图像。
有办法解决吗?
谢谢!
发布问题后我立即找到了解决方案。
我在两个 src 更改之间添加了延迟。 之后:
document.getElementById(img_id).src="";
我加了
sleep(1000);
而 sleep 是我创建的一个函数(很脏):
function sleep(ms){
stoptime = Date.now() + ms;
while(Date.now() < stoptime){ }
return;
}
我想对于更长的睡眠来说,这不是一个好的解决方案,但它解决了我的问题,或者至少给了我一个关于要搜索什么的提示。