Phonegap本地音频没有播放 - 尝试过一切都没有运气

时间:2014-10-07 13:03:11

标签: cordova audio

我在互联网上搜索了高低,尝试了所有推荐但仍然没有运气。我非常机智,这让我很难过。我正在使用Phonegap构建,然后我下载到我的Android Galaxy S4。我在Ripple工作过,但即使这样,手机也没有运气。我的音频文件位于asset / www / audio /

我收到的一致错误是:未捕获的ReferenceError:未定义媒体 我已经尝试了每个文件结构,仍然没有骰子。包括大多数答案所要求的

文件:///android_asset/www/audio/horn.mp3

/android_asset/www/audio/horn.mp3

包含在config.xml中(关于此问题):

<preference name="phonegap-version" value="3.5.0" />
<gap:plugin name="org.apache.cordova.media" version="0.2.13" />

首先是通话(有多个地方可以调用不同的音频文件)

<a href="#" data-transition="flip" data-role="button" onClick="audioPathOne();">Start</a>
<a href="#" data-transition="flip" data-role="button" onClick="audioPathTwo();">Start</a>

在我的js文件中......

function audioPathOne () {
        playAudio(getPhoneGapPath () + 'audio/beep.mp3');
}

function audioPathTwo() {
        playAudio(getPhoneGapPath () + 'audio/horn.mp3');
}

function playAudio() {
        my_media = new Media();
        my_media.play();

function pauseAudio() {
        if (my_media) {
            my_media.pause();
        }

function stopAudio() {
        if (my_media) {
            my_media.stop();
        }
        clearInterval(mediaTimer);
        mediaTimer = null;
    }

function onSuccess() {
        console.log("playAudio():Audio Success");
    }

function onError(error) {
        alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }
}

function getPhoneGapPath() {
var path = window.location.pathname;
path = path.substr( path, path.length - 10 );
return 'file://' + path; 
};

1 个答案:

答案 0 :(得分:0)

Android中媒体的正确路径是

/android_asset/www/

它不是你现有的文件结构,而是可以在Ripple中工作。它的android路径。

在html中:

<a href="#" data-transition="flip" data-role="button" onClick="playAudio('http://www.noiseaddicts.com/samples/4928.mp3');">Online</a>
<a href="#" data-transition="flip" data-role="button" onClick="playAudio('/android_asset/www/audio/horn.mp3');">Local</a>

js文件:

// Audio player
//
var my_media = null;
var mediaTimer = null;


// Play audio
//
function playAudio(src) {
    // Create Media object from src
    my_media = new Media(src, onSuccess, onError);

    // Play audio
    my_media.play();

}

// Pause audio
//
function pauseAudio() {
    if (my_media) {
        my_media.pause();
    }
}

// Stop audio
//
function stopAudio() {
    if (my_media) {
        my_media.stop();
    }
}

// onSuccess Callback
//
function onSuccess() {
    console.log("playAudio():Audio Success");
}

// onError Callback
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}