首页 文章

在PhoneGap中使用Media Object播放3gpp文件

提问于
浏览
1

我的应用程序的算法:

1)使用PhoneGap CaptureAudio录制音频文件 .

2)使用FileTransfer将文件存储在服务器上 .

3)使用Media对象播放文件 .

完成第1步,我得到一个录制XXXXX.3gpp文件 .

完成第2步,并将录制-XXXXX.3gpp文件上载到我的服务器 .

第3步是问题所在 . 打开3gpp文件时出现媒体对象错误

var my_media = new Media("http://myserver/getfile.aspx?file=filepath/recording-XXXXX.3gpp", function() { 
           console.log("playAudio():Audio Success");
    }, function(){
           alert('code: '    + error.code    + '\n' +
           'message: ' + error.message + '\n');
    });     
    my_media.play();

但是,如果我将查询更改为mp3文件,则媒体对象将按要求运行 .

我不确定出了什么问题 . 有一点,我能做的是创建.3gpp到.mp3,但该选项是最后的选择 .

请帮我解决一下这个 .

我在Android平板电脑上使用PhoneGap 2.4.0 .

2 回答

  • 0

    为什么使用.3gpp的扩展名而不是.3gp?

    你确定IIS正在为3gp文件提供服务并使用正确的 video/3gpp 标头吗?如果您从桌面浏览器而不是设备导航到该文件的URL,会发生什么?

    IIS可能不知道使用.3gpp扩展名的3gp的MIME类型,因此不会提供文件,因为默认情况下,IIS出于安全原因不会提供无法识别的文件扩展名 .

    如果mp3是一个注册的MIME类型,但3gp不是这样可以解释为什么一个工作而不是另一个工作 .

    Follow the instructions here to add the 3gp MIME type:

    %windir%\system32\inetsrv\appcmd set config /section:staticContent /+"[fileExtension='.3gp',mimeType='audio/3gpp']"
    
  • 0

    我已经找到了解决方案 .

    将文件上载到服务器时,将文件上传为.wav或.mp3扩展名而不是.3gpp . 将录制的文件从.3gpp重命名为.wav或.mp3

    当您向Media对象提供URL时,播放器会流式传输文件并开始播放 .

    虽然如果没有安装兼容的插件,上传到服务器的文件和扩展名更改为.wav或.mp3的文件在使用Windows Media Play的桌面上无法播放 .

相关问题