html5+ audio 模塊
MUI播放音頻 Audio模塊用於提供音頻的錄制和播放功能,可調用系統的麥克風設備進行錄音操作,也可調用系統的揚聲器設備播放音頻文件。通過plus.audio獲取音頻管理對象。
權限
"Audio": { "description": "訪問音頻設備" }
錄音
// 擴展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 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); }
完整測試代碼:
<!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>