phonegap 3.5播放本地音频文件

时间:2014-11-15 23:05:14

标签: javascript android angularjs cordova phonegap-plugins

我有带有angularjs的phonegap 3.5应用程序,我的index.mp3在我的根目录中有index.html文件 该应用程序在我的Android设备和phonegap应用程序中运行良好,但我无法播放song.mp3文件 我使用cordova媒体插件,它总是给我代码1错误 我也尝试了ngCordova插件相同的代码错误。 我的代码是

 var src ="song.mp3";
 // I tried also 
//  var src="/android_asset/www/song.mp3"; 
 // and src ="file:///song.mp3";

var media = new Media(src,function(){

   console.log("playing");
 ,function(err){

 console.log(err.code);
 });
media.play();

2 个答案:

答案 0 :(得分:2)

Code = 1表示“已中止”(MediaError.MEDIA_ERR_ABORTED = 1)请参阅https://github.com/apache/cordova-plugin-media/blob/master/doc/index.md#constants-1

所以这通常意味着路径有问题。 song.mp3与index.html位于同一文件夹中吗?也许这会有所帮助:Playing local sound in phonegap

只有当您想从本地文件系统播放时才需要file://...

答案 1 :(得分:1)

它为我工作,我使用了带有以下脚本的cordova媒体插件

cordova插件添加org.apache.cordova.media



function getCordovaPath() {
  var absolutePath = window.location.pathname;
  //14 is length of html file name(including .html) 
  actualPath = absolutePath.substr( path, path.length - 14 );
  return 'file://' + actualPath;
}

function playAudio() {
  //var audioElement = document.getElementById(id);
  //var url = audioElement.getAttribute('src');
  var my_media = new Media(getCordovaPath() + 'beep.mp3',
  // success callback
  function () { console.log("playAudio():Audio Success"); },
  // error callback
  function (err) { console.log("playAudio():Audio Error: " + err); });
  // Play audio
  my_media.play();
}

<body onload="playAudio()">
&#13;
&#13;
&#13;