| <!DOCTYPE html> |
| <html> |
| <!-- |
| Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| <head> |
| <title>Video Capture Example</title> |
| <script type="text/javascript"> |
| var device_array = []; |
| |
| function HandleMessage(message_event) { |
| if (message_event.data) { |
| if (message_event.data == 'EnumerationFailed') { |
| var status = document.getElementById('status'); |
| status.innerText = 'Device enumeration failed!'; |
| } else if (message_event.data == 'OpenFailed') { |
| var status = document.getElementById('status'); |
| status.innerText = 'Open device failed!'; |
| } else { |
| device_array = message_event.data.split('#__#'); |
| |
| var list = document.getElementById('device_list'); |
| for (var i = 0; i < device_array.length; ++i) { |
| var list_item = document.createElement('li'); |
| var link = document.createElement('a'); |
| link.href = 'javascript:UseDesignatedDevice(' + i + ');'; |
| link.innerText = device_array[i]; |
| list_item.appendChild(link); |
| list.appendChild(list_item); |
| } |
| } |
| } |
| } |
| |
| function UseDesignatedDevice(index) { |
| UseDevice(device_array[index], index); |
| } |
| |
| function UseDefaultDevice(use_0_1_interface) { |
| var display_text = use_0_1_interface ? 'Default(v0.1)' : 'Default'; |
| var command = use_0_1_interface ? 'UseDefault(v0.1)' : 'UseDefault'; |
| UseDevice(display_text, command); |
| } |
| |
| function UseDevice(display_text, command) { |
| var in_use_device = document.getElementById('in_use_device'); |
| in_use_device.innerText = display_text; |
| var plugin = document.getElementById('plugin'); |
| plugin.postMessage(command); |
| |
| var available_devices = document.getElementById('available_devices'); |
| available_devices.parentNode.removeChild(available_devices); |
| |
| var control_panel = document.getElementById('control_panel'); |
| var link = document.createElement('a'); |
| link.href = 'javascript:Stop();'; |
| link.innerText = 'Stop'; |
| control_panel.appendChild(link); |
| } |
| |
| function Stop() { |
| var plugin = document.getElementById('plugin'); |
| plugin.postMessage('Stop'); |
| } |
| |
| function Initialize() { |
| var plugin = document.getElementById('plugin'); |
| plugin.addEventListener('message', HandleMessage, false); |
| plugin.postMessage('PageInitialized'); |
| } |
| |
| document.addEventListener('DOMContentLoaded', Initialize, false); |
| </script> |
| </head> |
| |
| <body> |
| <embed id="plugin" type="application/x-ppapi-example-video-capture" |
| width="320" height="240"/> |
| <div style="margin-bottom:10px">In-use device: |
| <span id="in_use_device" style="font-weight:bold">None</span> |
| </div> |
| <div id="available_devices"> |
| Available device(s), choose one to open: |
| <ul id="device_list"> |
| <li><a href="javascript:UseDefaultDevice(true);"> |
| Default - use interface version 0.1</a></li> |
| <li><a href="javascript:UseDefaultDevice(false);">Default</a></li> |
| </ul> |
| </div> |
| <div id="control_panel"></div> |
| <div id="status"></div> |
| </body> |
| </html> |