MUI播放音频–html5+ audio模块
html5+ audio 模块
MUI播放音频 Audio模块用于提供音频的录制和播放功能,可调用系统的麦克风设备进行录音操作,也可调用系统的扬声器设备播放音频文件。通过plus.audio获取音频管理对象。
权限
1 2 3 4 |
"Audio": { "description": "访问音频设备" } |
录音
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 扩展API加载完毕,现在可以正常调用扩展API function onPlusReady() { r = plus.audio.getRecorder(); } function startRecord() { if ( r == null ) { alert( "Device not ready!" ); return; } r.record( {filename:"_doc/audio/xx.amr"}, function () {//真机测试文件在/sdcard/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/doc下面(.HBuilder是隐藏的,要查看隐藏的文件) alert( "Audio record success!" ); }, function ( e ) { alert( "Audio record failed: " + e.message ); } ); } |
这样录音就被保存下来了
播放录音
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function player(){//播放音乐 s = plus.audio.createPlayer( "_doc/audio/gg.mp3" ); var num = s.getDuration();//获取音频总长度number setTimeout(function(){//延时获取,否则可能没有返回长度 var num = s.getDuration(); alert(num) },100) s.play( function () {//播放完成回调 alert( "Audio play success!" ); }, function ( e ) {//失败回调 alert( "Audio play error: " + e.message ); } ); } |
暂停播放
1 2 3 4 |
function pause(){//暂停播放 s.pause(); } |
恢复播放
1 2 3 4 |
function resume() {//恢复播放 s.resume(); } |
跳到指定位置播放(快进)
1 2 3 4 |
function seekTo(){ s.seekTo(100); } |
完整测试代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Audio Example</title> <script type="text/javascript"> // 扩展API加载完毕后调用onPlusReady回调函数 document.addEventListener( "plusready", onPlusReady, false ); var r = null; // 扩展API加载完毕,现在可以正常调用扩展API function onPlusReady() { r = plus.audio.getRecorder(); } function startRecord() { if ( r == null ) { alert( "Device not ready!" ); return; } r.record( {filename:"_doc/audio/xx.amr"}, function () {//真机测试文件在/sdcard/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/doc下面(.HBuilder是隐藏的,要查看隐藏的文件) alert( "Audio record success!" ); }, function ( e ) { alert( "Audio record failed: " + e.message ); } ); } function stopRecord() { r.stop(); } function player(){//播放音乐 s = plus.audio.createPlayer( "_doc/audio/gg.mp3" ); var num = s.getDuration();//获取音频总长度number setTimeout(function(){//延时获取,否则可能没有返回长度 var num = s.getDuration(); alert(num) },100) s.play( function () { alert( "Audio play success!" ); }, function ( e ) { alert( "Audio play error: " + e.message ); } ); } function pause(){//暂停播放 s.pause(); } function resume() {//恢复播放 s.resume(); } function seekTo(){ s.seekTo(100); } </script> </head> <body> <input type="button" value="Start Record" onclick="startRecord();"/> <br/> <input type="button" value="Stop Record" onclick="stopRecord();"/> <br /> <input type="button" value="player" onclick="player();"/> <br /> <input type="button" value="暂停" onclick="pause();"/> <br /> <input type="button" value="恢复" onclick="resume();"/> <br /> <input type="button" value="跳到指定位置" onclick="seekTo();"/> </body> </html> |
初级码农
2017年12月2日 15:15
webview下的怎么获取呢,比如有好几个页面都有audio标签
小荷
2018年11月7日 10:24
hbuilder真机运行能够正常运行,但是打包成app,安卓的就不能用了,ios正常使用,这是为什么?