<!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>Enumerate Devices Example</title> <script type="text/javascript"> var device_array = []; var enumerating = false; function HandleMessage(message_event) { if (message_event.data) { var status = document.getElementById('status'); if (message_event.data == 'EnumerationFailed') { status.innerText = 'Device enumeration failed!'; } else { devices_data = message_event.data.substring('EnumerationSuccess'.length); if (devices_data.length > 0) device_array = devices_data.split('#__#'); else device_array = []; var list = document.getElementById('device_list'); if (device_array.length == 0) list.innerHTML = 'No devices.'; for (var i = 0; i < device_array.length; ++i) { var list_item = document.createElement('li'); var span = document.createElement('span'); span.innerText = device_array[i]; list_item.appendChild(span); list.appendChild(list_item); } status.innerText = 'Device enumeration success!'; } enumerating = false; } } function EnumerateDevices(sync) { if (enumerating) return; enumerating = true; var status = document.getElementById('status'); var plugin = document.getElementById('plugin'); if (sync) { status.innerText = 'Enumerating devices sync...' plugin.postMessage('EnumerateDevicesSync'); } else { status.innerText = 'Enumerating devices async...' plugin.postMessage('EnumerateDevicesAsync'); } } function Initialize() { var plugin = document.getElementById('plugin'); plugin.addEventListener('message', HandleMessage, false); EnumerateDevices(true); } document.addEventListener('DOMContentLoaded', Initialize, false); </script> </head> <body> <embed id="plugin" type="application/x-ppapi-example-enumerate-devices" width=0 height=0 /> <div> Press a link to enumerate video devices: <ul> <li><a href="javascript:EnumerateDevices(true)">Enumerate devices sync</a> (only implemented for out-of-process)</li> <li><a href="javascript:EnumerateDevices(false)">Enumerate devices async</a></li> </ul> </div> <div id="available_devices"> Available device(s): <ul id="device_list">No devices.</ul> </div> <div> Status: <span id="status"></span> </div> </body> </html>