<!DOCTYPE html>
<html>
  <!--
  Copyright 2014 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>Media Stream Audio Example</title>
  <script type="text/javascript">
    var plugin;
    var stream;

    function handleMessage(message) {
      console.log(message);
    }

    function success(s) {
      stream = s;
      plugin.postMessage({track: stream.getAudioTracks()[0]});
    }

    function failure(e) {
      console.log(e);
    }

    function initialize() {
      plugin = document.getElementById('plugin');
      plugin.addEventListener('message', handleMessage, false);
      navigator.webkitGetUserMedia({ 'audio': true }, success, failure);
    }

    document.addEventListener('DOMContentLoaded', initialize, false);
  </script>
</head>

<body>
  <h1>Pepper MediaStream Audio API Example</h1><br>
  This example demonstrates receiving frames from an audio MediaStreamTrack and
  rendering them in a plugin.<br>
  <embed id="plugin" type="application/x-ppapi-example-media-stream-audio"
      width="320" height="240"/>
</body>
</html>
