Javascript找不到这些变量,为什么?

时间:2012-07-12 12:55:18

标签: javascript cordova logcat

我正在使用Phonegap创建一个Android应用程序(录音机),但我的代码中有这两个错误:

  1. ReferenceError: Can't find variable: Media.

  2. TypeError: Result of expression 'mediaRec' undefined is not an object.

  3. 应用程序运行时发生第一个错误。当我调用recordAudio()时发生第二个错误;方法

    如果你知道,请告诉我问题是什么。

    var mediaRec;
    var src;
    document.addEventListener("deviceready", onDeviceReady, false);
    
    function onDeviceReady() {
    
    }
    function init() {
        document.getElementById('status').innerHTML = "Recording Status";
        src = "myrecording.mp3";
        mediaRec = new Media(src, onSuccess, onError);
    }
    
    function recordAudio() {
        // Record audio
        mediaRec.startRecord();
        // Stop recording after 10 sec
        var recTime = 0;
        var recInterval = setInterval(function() {
            recTime = recTime + 1;
            setAudioPosition(recTime + " sec");
            if (recTime >= 10) {
                clearInterval(recInterval);
            }
        }, 1000);
    }
    
    // Stop audio
    function stopRecording() {
        if (mediaRec) {
            mediaRec.stopRecord();
        }
        clearInterval(mediaTimer);
        mediaTimer = null;
    }
    // onSuccess Callback
    function onSuccess() {
        console.log("recordAudio():Audio Success");
    }
    // onError Callback 
    function onError(error) {
        alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
    }
    // Set audio position
    function setAudioPosition(position) {
        document.getElementById('rec_position').innerHTML = position;
    }
    

    感谢。

2 个答案:

答案 0 :(得分:0)

我认为scr =“/ android_asset / www / myrecording.mp3”因为资产/ www /中的目录phonegap ... 如果目录未找到javascript in phonegap show alert就像ReferenceError:找不到变量:Media。

答案 1 :(得分:0)

请务必添加定义全局媒体构造函数的'cordova-plugin-media'插件。见Cordova media documentation cordova plugin add cordova-plugin-media --save

可能发生这种情况的另一个原因是确保等到设备准备就绪,然后调用new Media构造函数之前的Cordova事件。