1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
<!DOCTYPE html>
<html>
<head>
<script>
let context;
let oscillator;
let stream;
let gain;
function sendMessage(message)
{
try {
if (window.webkit)
window.webkit.messageHandlers.testHandler.postMessage(message);
else
console.log(`MESSAGE - ${message}`);
} catch(err) {
console.log(`failed to send message ${message}: ${err}`);
}
}
function createWebAudioNode()
{
context = new AudioContext();
gain = new GainNode(context, {gain: 0.05});
gain.connect(context.destination);
oscillator = new OscillatorNode(context);
oscillator.connect(gain);
oscillator.start();
}
function disconnectWebAudioNode()
{
oscillator.stop();
oscillator.disconnect();
gain.disconnect();
context.close();
}
async function startCapture()
{
stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: { volume: 0.05 } });
}
function stopCapture()
{
stream.getTracks().forEach(track => track.stop());
}
async function playVideo()
{
let video = document.getElementsByTagName('video')[0];
video.src = 'test-mse.mp4';
video.volume = 0.05;
await video.play();
sendMessage('playing');
}
function pauseVideo()
{
video = document.getElementsByTagName('video')[0].pause();
}
</script>
<head>
<body>
<video controls></video>
<br>
<button onclick="createWebAudioNode()">Create Audio Node</button>
<button onclick="disconnectWebAudioNode()">Disconnect Audio Node</button>
<br>
<button onclick="startCapture()">Start Capture</button>
<button onclick="stopCapture()">Stop Capture</button>
<br>
<button onclick="playVideo()">Play <video></button>
<button onclick="pauseVideo()">Pause <video></button>
</body>
</html>
|