无法在phonegap中播放音频mp3文件android [英] unable to play an audio mp3 file in phonegap android

查看:128
本文介绍了无法在phonegap中播放音频mp3文件android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新的Phonegap(Cardova),我想播放一个本地mp3文件,它可以从 url ,但不是本地文件播放文件。我的文件位于 Assets - > www - >音频 - > Ikhlas.mp3 ,我使用多个页面的 Jquery Mobile 。在每个页面中,我将不得不使用 Oclick 播放按钮播放不同的音频文件。当我点击按钮播放我得到以下错误

  07-19 07: 43:58.829:E / MediaPlayer(1081):尝试调用没有有效媒体播放器的getDuration,
07-19 07:43:58.838:E / MediaPlayer(1081):尝试在错误的状态下执行seekTo:mPlayer = 0x0,mCu​​rrentState = 0

任何帮助将受到高度赞赏。感谢

 <!DOCTYPE html> 
< html>
< head>
< meta charset =utf-8>
< meta name =viewportcontent =width = device-width,initial-scale = 1>

< title>< / title>

< script type =text / javascriptcharset =utf-8src =js / cordova.js>< / script>
< link rel =stylesheethref =css / themes / default / jquery.mobile-1.3.1.min.css>
< link rel =stylesheethref =_ assets / css / jqm-demos.css>
< link rel =shortcut iconhref =favicon.ico>
< link rel =stylesheethref =http://fonts.googleapis.com/css?family=Open+Sans:300,400,700>
< link rel =stylesheethref =css / themes / default / my_style.css>
< link rel =stylesheetmedia =screenhref =http://openfontlibrary.org/face/droid-arabic-naskh =stylesheettype =text / css/> ;
< script src =js / jquery.js>< / script>
< script src =_ assets / js / index.js>< / script>
< script src =js / jquery.mobile-1.3.1.min.js>< / script>


< script>
var myaudio = new Audio('/ android_asset / www / audio / Ikhlas.mp3');
function playStream(){
try {
// alert(ffff);

myaudio.id ='playerMyAdio';
myaudio.play();
} catch(e){
alert('no audio support!');
}
}


function stopStream(){
try {
myaudio.pause();
} catch(e){
alert('no audio support!');
}
}
< / script>
< div data-role =pageid =Ikhlas>
< div data-role =header>
< a href =#page2class =ui-btn-leftdata-icon =backdata-iconpos =notextclass =ui- icon-nodiscdata-iconshadow = falsedata-transition =slide>回< / a>
< a href =index.htmldata-icon =homeclass =ui-btn-rightclass =ui-icon-nodisc
data-iconshadow =false data-iconpos =notext>首页< / a>
< / div>
<! - / header - >
< body>
< div data-role =content>
< button onClick =playStream()> play< / button>< br />
< button onClick =stopStream()> stop< / button>< br />
< / div>
<! - / content - >
< div data-role =footer>< a href =#page2data-role =buttondata-icon =backdata-transition =slide> ; / a>< / div>
< / div>
< / body>
< / html>


解决方案

使用Media而不是Audio
这行代码

  var myaudio = new Media('/ android_asset / www / audio / Ikhlas.mp3');在您的函数中播放

playStream() p>

I am new to Phonegap (Cardova),I want to play a local mp3 file,it can play a file from url,but not a local file.My file is located in Assets --> www --> audio --> Ikhlas.mp3 , I using Jquery Mobile with multiple pages. and in each page I will have to play a different audio file with Oclick Play Button. when ever i click the button to play i got the following errors :

 07-19 07:43:58.829: E/MediaPlayer(1081): Attempt to call getDuration without a valid mediaplayer,
07-19 07:43:58.838: E/MediaPlayer(1081): Attempt to perform seekTo in wrong state: mPlayer=0x0, mCurrentState=0

any help will be highly appreciated. Thanks

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title></title>

<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>
<link rel="stylesheet"  href="css/themes/default/jquery.mobile-1.3.1.min.css">
<link rel="stylesheet" href="_assets/css/jqm-demos.css">
<link rel="shortcut icon" href="favicon.ico">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700">
<link rel="stylesheet" href="css/themes/default/my_style.css">
<link rel="stylesheet" media="screen" href="http://openfontlibrary.org/face/droid-arabic-naskh" rel="stylesheet" type="text/css"/>
<script src="js/jquery.js"></script>
<script src="_assets/js/index.js"></script>
<script src="js/jquery.mobile-1.3.1.min.js"></script>


<script>
var myaudio = new Audio('/android_asset/www/audio/Ikhlas.mp3');
function playStream() {
  try {
   //alert ("ffff");

    myaudio.id = 'playerMyAdio';
    myaudio.play();
  } catch (e) {
    alert('no audio support!');
  } 
}


function stopStream() {
  try {
   myaudio.pause();
  } catch (e) {
    alert('no audio support!');
  } 
}
</script> 
<div data-role="page" id="Ikhlas">
<div data-role="header">
<a href="#page2" class="ui-btn-left" data-icon="back" data-iconpos="notext" class="ui-   icon-nodisc" data-iconshadow="false" data-transition="slide">back</a>
<a href="index.html" data-icon="home" class="ui-btn-right" class="ui-icon-nodisc"
data-iconshadow="false" data-iconpos="notext">Home</a>  
</div>
<!-- /header -->
<body>
<div data-role="content">
<button onClick="playStream()">play</button><br />
<button onClick="stopStream()">stop</button><br />
</div>
<!-- /content -->
<div data-role="footer"><a href="#page2" data-role="button" data-icon="back"      data-transition="slide">Go Back</a></div>
</div>
</body>
</html>

解决方案

Use Media instead of Audio and put this line of code

var myaudio = new Media('/android_asset/www/audio/Ikhlas.mp3');

inside your function playStream()

这篇关于无法在phonegap中播放音频mp3文件android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆