1

我需要我的phonegap应用程序在其工作时在后台进行录音。为此,该Media对象工作得很好,问题是一旦我导航到新页面它就会停止记录。我没有找到任何方法来暂停和继续录制,即使可能我也不想这样做,因为录制会被剪掉。

我需要开始编写插件吗?

function startAudioRec() {
  var src = "rec.amr";
  audioRec = new Media(src, recordOnSuccess, recordOnError);
  audioRec.startRecord();
  circleBlink();
  console.log("test");

}
function recordOnError() {}
function recordOnSuccess() {}

var visible = true;
var recInterval;

function circleBlink() {
  recInterval = setInterval(blink, 1000);
  function blink() {
    var circle = document.getElementById('recCircle');
    if (visible) {
      circle.setAttribute("style", "visibility: hidden;");
      visible = false;
    } else {
      circle.setAttribute("style", "visibility: visible;");
      visible = true;
    }
  }
}
function stopAudioRec() {
  audioRec.stopRecord();
  clearInterval(recInterval);
  document.getElementById("recCircle").setAttribute("style", "visibility: hidden;");
  audioRec.release();
}
4

2 回答 2

0

也许您可以使用像 Dojo 这样的框架并将您的应用程序构建为单页应用程序。然后当你导航到一个新页面时,它基本上会为你换掉 DOM 元素。从理论上讲,您将停留在同一个 HTML 页面上,因此在您告诉它之前它不应该停止录制。虽然只是一个想法......这是一个有趣的问题,请让我们知道你最终会做什么。祝你好运!

下面是一个在 Dojo 中构建的单页应用程序的简单示例:http: //demos.dojotoolkit.org/demos/mobileSlideShow/demo.html

应用程序测试中还有更多:http: //archive.dojotoolkit.org/nightly/checkout/dojox/app/tests/ 并非所有这些都是单页 Web 应用程序。我知道其他框架会为你做这可能更容易学习,抱歉我没有任何链接。

于 2013-04-22T15:51:52.300 回答
0

到目前为止,我唯一的想法是动态删除所有 html 元素并使用 javascript 和 DOM 在同一页面上替换它们,从而在整个应用程序中保持在同一页面上而根本无需导航。更好的东西吗?我希望能够导航,我的解决方案并不直观。

    var page1=document.getElementsByName("page1");
    var size=page1.length;
    for(var i=0;i<size;i++){
        page1.removeChild(page1[0]);
    }
    var a=document.createElement("button");
    a.setAttribute("name","page2");
于 2013-04-22T10:50:55.693 回答