cordova media android不播放声音,通过cordova media实现录音播放问题

录音播放实现方案:终端上通过cordova实现录音,将录音Base64 文件传到服务器端进行解码保存,然后再在终端通过cordova进行播放

Android平台没有问题

IOS平台问题:

问题1、由于cordova插件在IOS上只能使用.WAV格式进行录音,但是通过cordova插件直接播放.WAV文件失败(.MP3没有问题),看是否有遇到此问题的,如何解决?

我目前想到的是做MAV到MP3的转码,最好是在终端侧进行转码,因为MP3格式的文件会小很多,而且能减少服务器解码压力,但终端解码ios和Android都需要实现,实现上更复杂,如果上面没有解决方案,这里求比较好的解码规避方案

例如:

var url = "http://120.25.245.47:8080/x5/news/voice/1444550513130.wav";//.mp3文件OK,Android两者都没有问题

mediaRec = new Media(url,

function() {

},

function(err) {

alert("erro");

},

function(status) {

if(status === 4){

//me.releaseMedia();

}

});

mediaRec.play();

问题2,在IOS平台下录音完毕后,无法读取到录音文件,或者说是录音文件大小为0,Android下一切正常

Model.prototype.getRecordFile = function(path){

var me = this;

var filePath = path;

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);

function gotFS(fileSystem) {

fileSystem.root.getFile(filePath, {

create : true,

exclusive : false

}, gotFileEntry, fail);

}

function gotFileEntry(fileEntry) {

fileEntry.file(gotFile, fail);

}

function gotFile(file) {

file.type='audio/wav';

readDataUrl(file);

}

function readDataUrl(file) {

var reader = new FileReader();

reader.onloadend = function(evt) {

var userinfo = common.getUserInfo();

alert(evt.target.result);

var voicefile = encodeURIComponent(evt.target.result);

var success = function(resultData) {

me.removeRecordFile(fileName);

if(resultData.result === 1){

news.newsCommentCount = news.newsCommentCount + 1;

var obj = $(me.getElementByXid("label_news_detail_commentcount"));

var Num = parseInt(obj.text());

Num++;

obj.text(Num);

common.setUserTime(resultData.time);

me.queryComment();

}

else{

common.autoLogin(me.loginOK);

}

};

var error =  function(resultData) {

alert("上传失败");

};

Baas.sendRequest({

"url" :     "/register",

"action" :  "submitNewsVoice",

"async" :   true,

"params" :  params,

"success" : success,

"error" : error,

});

};

reader.readAsDataURL(file);

}

function fail(evt) {

console.log("code=======" + evt.target.error.code);

alert(evt.target.error.code);

}

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值