在 Android 上无法通过脚本播放视频
Playing a video via script does not work on Android
我想做的很简单。通过脚本播放视频。而已。我的代码在 PC 上运行良好,但在 Android 上运行不佳。
奇怪的是,在我点击一个视频元素播放视频并再次点击它暂停后,我的代码运行良好..,这意味着播放视频是由服务器端js方法执行的。
我只是假设我需要为 Android 上的代码添加一些额外信息才能以我预期的方式工作。代码如下
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<video id="video-player" width="640" height="480" preload="auto">
<source src="assets/test_movie.mp4" type="video/mp4">
</video>
<!-- import script after DOM is ready -->
<script src="/socket.io/socket.io.js"></script>
<script src="/frontapp.js"></script>
</body>
</html>
```
```js
(function(){
var socket = io();
// store video dom element in application memory
var video = document.getElementById('video-player');
// listen socket
socket.on('player trigger', function(data){
//playMovie(video);
video.play();
console.log('hi there from server');
document.getElementById('heading').innerText = makeid();
});
// method to change text
function makeid()
{
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < 5; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
})();
```
```服务器端
**// Setup basic express server
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('../..')(server);
var port = process.env.PORT || 7000;
server.listen(port, function(){
console.log('Server listening at port %d', port);
});
// Routing
app.use(express.static(__dirname + '/myapp'));
// method from server
setInterval(function(){
io.emit('player trigger');
console.log('io.emit:)');
}, 5000);
```
这是预期的行为,没有办法让它按照您想要的方式工作。
在移动设备上,只有用户操作才能启动视频和音频播放。这意味着必须在点击处理程序中调用 video.play();
(不过您可以在处理程序中使用 setTimeout
)。
这是为了限制不需要的数据传输以避免不必要的费用。
在 this article.
中阅读更多相关信息
我想做的很简单。通过脚本播放视频。而已。我的代码在 PC 上运行良好,但在 Android 上运行不佳。 奇怪的是,在我点击一个视频元素播放视频并再次点击它暂停后,我的代码运行良好..,这意味着播放视频是由服务器端js方法执行的。 我只是假设我需要为 Android 上的代码添加一些额外信息才能以我预期的方式工作。代码如下
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<video id="video-player" width="640" height="480" preload="auto">
<source src="assets/test_movie.mp4" type="video/mp4">
</video>
<!-- import script after DOM is ready -->
<script src="/socket.io/socket.io.js"></script>
<script src="/frontapp.js"></script>
</body>
</html>
```
```js
(function(){
var socket = io();
// store video dom element in application memory
var video = document.getElementById('video-player');
// listen socket
socket.on('player trigger', function(data){
//playMovie(video);
video.play();
console.log('hi there from server');
document.getElementById('heading').innerText = makeid();
});
// method to change text
function makeid()
{
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < 5; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
})();
```
```服务器端
**// Setup basic express server
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('../..')(server);
var port = process.env.PORT || 7000;
server.listen(port, function(){
console.log('Server listening at port %d', port);
});
// Routing
app.use(express.static(__dirname + '/myapp'));
// method from server
setInterval(function(){
io.emit('player trigger');
console.log('io.emit:)');
}, 5000);
```
这是预期的行为,没有办法让它按照您想要的方式工作。
在移动设备上,只有用户操作才能启动视频和音频播放。这意味着必须在点击处理程序中调用 video.play();
(不过您可以在处理程序中使用 setTimeout
)。
这是为了限制不需要的数据传输以避免不必要的费用。 在 this article.
中阅读更多相关信息