phonegap播放http://或基于文件://的mp3在Android上不起作用

时间:2013-09-05 13:54:48

标签: android cordova mp3 media

我正在开发一个只有几个功能的简单应用程序,它应该从网站播放音频以太网,即。

function playfile(){

var playing = "http://static.weareswoop.com/audio/charlestown/track_1.mp3";

   var my_media = new Media(playing,        
    function() {
        alert("playAudio():Audio Success");
    },       
    function(err) {
      if(err.message  != undefined) { alert("playAudio():Audio Error: "+err.message); }
      if(err.code  != undefined) { alert("playAudio():Audio Error: "+err.code); }
});

// Play audio
my_media.play();
}

使用

的html
<a href="#" onclick="playfile()">play</a>

无论我做什么,这都不适用于Andriod(版本2.X和4.X),但在iOS(v5 iPad 1测试版)上工作得很好。

如果我针对基于Web的文件执行此操作,我无法获得成功或失败功能的响应,但是如果我再次运行SD车上的本地文件,即file:/// mnt / sd-card / mining / charlestown / track1.mp3我收到错误代码1,没有错误消息。

任何帮助都会受到欢迎。

编辑:获取我正在使用FileTransfer()下载的本地文件版本(在任何操作系统上都可以正常工作)。

window.appRootDirName = "mining"; // sets the working directory 
var playing =     window.appRootDir.fullPath + "/track1.mp3"; // sets filename

因此,我最终得到了一个URI文件:///mnt/sd-card/mining/track1.mp3,这是在使用2.x Samsung Galaxy Y时完全正确的uri。

同样,我必须强调,这整个情况适用于iOS,但不适用于Android。在Android上获取基于HTTP:的文件时,它在FILE上没有错误或成功://在尝试播放时它会给出错误代码1。

2 个答案:

答案 0 :(得分:1)

您必须在android_asset / www /中添加到文件路径才能从文件中播放它,请参阅以下错误。

Playing local sound in phonegap

这应该解决播放本地文件部分问题

我试过玩http://static.weareswoop.com/audio/charlestown/track_1.mp3,使用Cordova 3.0和android 4.3

对我来说很好

答案 1 :(得分:0)

通过PhoneGap桌面/ PhoneGap开发人员应用程序运行时播放媒体文件不起作用。当你做一个真实的&#34;它确实有效。例如,使用PhoneGap Build构建,然后在手机上安装该应用程序。

因此,除了使用完整的文件路径之外,如其他答案所述,您还需要运行&#34;真正的&#34;建立。

看起来这是PhoneGap知道并列在其列表中的错误:https://github.com/phonegap/phonegap-app-desktop/issues/335