PhoneGap API帮助文档翻译Media媒体

移动开发
PhoneGap API帮助文档翻译Media媒体是本文要介绍的内容。,主要是来了解并学习PhoneGap API文档的内容,具体关于PhoneGap API文档内容的详解来看本文。

PhoneGap API帮助文档翻译Media媒体是本文要介绍的内容。,主要是来了解并学习PhoneGap API文档的内容,具体关于PhoneGap API文档内容的详解来看本文,media对象提供录制和回放设备上的音频文件的能力。

  1. var media = new Media(src, mediaSuccess, [mediaError]);    
  2. var media = new Media(src, mediaSuccess, [mediaError]); 

备注:Media的当前实现并没有遵守W3C媒体捕获的相关规范,目前只是为了提供方便。未来的实现将遵守最新的W3C规范并可能不再支持当前的APIs。

参数:

src:一个包含音频内容的URI。(DOMString类型)

mediaSuccess:(可选项)当一个Media对象完成当前的播放、录制或停止操作时触发的回调函数。(函数类型)

mediaError:(可选项)当出现错误时调用的回调函数。(函数类型)

mediaStatus:(可选项)当状态发生变化的时候调用的回调函数。(函数类型)

方法:

media.getCurrentPosition:返回一个音频文件的当前位置。

media.getDuration:返回一个音频文件的总时长。

media.play:开始或恢复播放音频文件。

media.pause:暂停播放音频文件。

media.release:释放底层操作系统的音频资源。

media.seekTo:在音频文件中移动到相应的位置。

media.startRecord:开始录制音频文件。

media.stopRecord:停止录制音频文件。

media.stop:停止播放音频文件。

另外的只读属性:

_position:以秒为单位的音频播放位置,播放过程中不会自动更新,通过调用getCurrentPosition进行更新。

_duration:以秒为单位的媒体时长。

支持的平台:

Android

iOS

media.getCurrentPosition 

返回返回一个音频文件的当前的位置。

  1. media.getCurrentPosition(mediaSuccess, [mediaError]);    
  2. media.getCurrentPosition(mediaSuccess, [mediaError]); 

参数:

mediaSuccess:成功的回调函数,返回当前的位置。

mediaError:(可选项)如果发生错误时调用的回调函数。

说明:

media.getCurrentPosition是一个异步函数,用户返回一个Media对象所指向的音频文件的当前位置,同时会对Media对象的_position参数进行更新。

支持的平台:

Android

iOS

简单的范例:

  1. // 音频播放器    
  2. var my_media = new Media(src, onSuccess, onError);    
  3.     
  4. // 每秒更新一次媒体播放到的位置    
  5. var mediaTimer = setInterval(function() {    
  6.     // 获得媒体位置    
  7.     my_media.getCurrentPosition(    
  8.         // 获得成功后调用的回调函数    
  9.         function(position) {    
  10.             if (position > -1) {    
  11.                 console.log((position/1000) + " sec");    
  12.             }    
  13.         },    
  14.         // 发生错误后调用的回调函数    
  15.         function(e) {    
  16.             console.log("Error getting pos=" + e);    
  17.         }    
  18.     );    
  19. }, 1000);    
  20. // 音频播放器  
  21. var my_media = new Media(src, onSuccess, onError);  
  22.  
  23. // 每秒更新一次媒体播放到的位置  
  24. var mediaTimer = setInterval(function() {  
  25.  // 获得媒体位置  
  26.  my_media.getCurrentPosition(  
  27.   // 获得成功后调用的回调函数  
  28.   function(position) {  
  29.    if (position > -1) {  
  30.     console.log((position/1000) + " sec");  
  31.    }  
  32.   },  
  33.   // 发生错误后调用的回调函数  
  34.   function(e) {  
  35.    console.log("Error getting pos=" + e);  
  36.   }  
  37.  );  
  38. }, 1000); 

完整的范例:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">    
  2. <html>    
  3. <head>        
  4. <title>Media Example</title>    
  5.     
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>    
  7. <script type="text/javascript" charset="utf-8">    
  8.     
  9. // 等待加载PhoneGap    
  10. document.addEventListener("deviceready", onDeviceReady, false);     
  11.     
  12. // PhoneGap加载完毕    
  13. function onDeviceReady() {    
  14.     playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");    
  15. }    
  16.     
  17. // 音频播放器    
  18. var my_media = null;    
  19. var mediaTimer = null;    
  20.     
  21. // 播放音频    
  22. function playAudio(src) {    
  23.     // 从目标文件创建Media对象    
  24.     my_media = new Media(src, onSuccess, onError);    
  25.     
  26.     // 播放音频    
  27.     my_media.play();    
  28.     
  29.     // 每秒更新一次媒体播放到的位置    
  30.     if (mediaTimer == null) {    
  31.         mediaTimer = setInterval(function() {    
  32.             // 获取媒体播放到的位置    
  33.             my_media.getCurrentPosition(            
  34.             
  35.                 //获取成功后调用的回调函数    
  36.                 function(position) {    
  37.                     if (position > -1) {    
  38.                         setAudioPosition((position/1000) + " sec");    
  39.                     }    
  40.                 },    
  41.                 // 发生错误后调用的回调函数    
  42.                 function(e) {    
  43.                     console.log("Error getting pos=" + e);    
  44.                     setAudioPosition("Error: " + e);    
  45.                 }    
  46.             );    
  47.         }, 1000);    
  48.     }    
  49. }    
  50.     
  51. // 暂停音频播放    
  52. function pauseAudio() {    
  53.     if (my_media) {    
  54.         my_media.pause();    
  55.     }    
  56. }    
  57.     
  58. // 停止音频播放    
  59. function stopAudio() {    
  60.     if (my_media) {    
  61.         my_media.stop();    
  62.     }    
  63.     clearInterval(mediaTimer);    
  64.     mediaTimer = null;    
  65. }    
  66.     
  67. // 创建Media对象成功后调用的回调函数    
  68. function onSuccess() {    
  69.     console.log("playAudio():Audio Success");    
  70. }    
  71.     
  72. // 创建Media对象出错后调用的回调函数    
  73. function onError(error) {    
  74.     alert('code: '    + error.code    + '\n' +     
  75.         'message: ' + error.message + '\n');    
  76. }    
  77.     
  78. // 设置音频播放位置    
  79. function setAudioPosition(position) {    
  80.     document.getElementById('audio_position').innerHTML = position;    
  81. }    
  82.     
  83. </script>    
  84. </head>    
  85. <body>    
  86.     <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>    
  87.     <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>    
  88.     <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>    
  89.     <p id="audio_position"></p>    
  90. </body>    
  91. </html>    
  92. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> 
  93. <html> 
  94. <head>   
  95. <title>Media Example</title> 
  96.  
  97. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  98. <script type="text/javascript" charset="utf-8"> 
  99.  
  100. // 等待加载PhoneGap  
  101. document.addEventListener("deviceready", onDeviceReady, false);   
  102.  
  103. // PhoneGap加载完毕  
  104. function onDeviceReady() {  
  105.  playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");  
  106. }  
  107.  
  108. // 音频播放器  
  109. var my_media = null;  
  110. var mediaTimer = null;  
  111.  
  112. // 播放音频  
  113. function playAudio(src) {  
  114.  // 从目标文件创建Media对象  
  115.  my_media = new Media(src, onSuccess, onError);  
  116.  
  117.  // 播放音频  
  118.  my_media.play();  
  119.  
  120.  // 每秒更新一次媒体播放到的位置  
  121.  if (mediaTimer == null) {  
  122.   mediaTimer = setInterval(function() {  
  123.    // 获取媒体播放到的位置  
  124.    my_media.getCurrentPosition(    
  125.     
  126.     //获取成功后调用的回调函数  
  127.     function(position) {  
  128.      if (position > -1) {  
  129.       setAudioPosition((position/1000) + " sec");  
  130.      }  
  131.     },  
  132.     // 发生错误后调用的回调函数  
  133.     function(e) {  
  134.      console.log("Error getting pos=" + e);  
  135.      setAudioPosition("Error: " + e);  
  136.     }  
  137.    );  
  138.   }, 1000);  
  139.  }  
  140. }  
  141.  
  142. // 暂停音频播放  
  143. function pauseAudio() {  
  144.  if (my_media) {  
  145.   my_media.pause();  
  146.  }  
  147. }  
  148.  
  149. // 停止音频播放  
  150. function stopAudio() {  
  151.  if (my_media) {  
  152.   my_media.stop();  
  153.  }  
  154.  clearInterval(mediaTimer);  
  155.  mediaTimer = null;  
  156. }  
  157.  
  158. // 创建Media对象成功后调用的回调函数  
  159. function onSuccess() {  
  160.  console.log("playAudio():Audio Success");  
  161. }  
  162.  
  163. // 创建Media对象出错后调用的回调函数  
  164. function onError(error) {  
  165.  alert('code: '    + error.code    + '\n' +   
  166.   'message: ' + error.message + '\n');  
  167. }  
  168.  
  169. // 设置音频播放位置  
  170. function setAudioPosition(position) {  
  171.  document.getElementById('audio_position').innerHTML = position;  
  172. }  
  173.  
  174. </script> 
  175. </head> 
  176. <body> 
  177.  <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a> 
  178.  <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a> 
  179.  <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a> 
  180.  <p id="audio_position"></p> 
  181. </body> 
  182. </html> 

media.getDuration 

返回音频文件的时间长度。

  1. media.getDuration();    
  2. media.getDuration(); 

说明:

media.getDuration是一个同步函数,如果音频时长已知的话则返回以秒为单位的音频文件时长,如果时长不可知的话则返回-1。

支持的平台:

Android

iOS

简单的范例:

  1. // 音频播放器    
  2. var my_media = new Media(src, onSuccess, onError);    
  3.     
  4. // 获得时间长度    
  5. var counter = 0;    
  6. var timerDur = setInterval(function() {    
  7.     countercountercounter = counter + 100;    
  8.     if (counter > 2000) {    
  9.         clearInterval(timerDur);    
  10.     }    
  11.     var dur = my_media.getDuration();    
  12.     if (dur > 0) {    
  13.         clearInterval(timerDur);    
  14.         document.getElementById('audio_duration').innerHTML = (dur/1000) + " sec";    
  15.     }    
  16. }, 100);    
  17. // 音频播放器  
  18. var my_media = new Media(src, onSuccess, onError);  
  19.  
  20. // 获得时间长度  
  21. var counter = 0;  
  22. var timerDur = setInterval(function() {  
  23.  countercounter = counter + 100;  
  24.  if (counter > 2000) {  
  25.   clearInterval(timerDur);  
  26.  }  
  27.  var dur = my_media.getDuration();  
  28.  if (dur > 0) {  
  29.   clearInterval(timerDur);  
  30.   document.getElementById('audio_duration').innerHTML = (dur/1000) + " sec";  
  31.  }  
  32. }, 100); 

#p#

完整的范例:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">    
  2. <html>    
  3. <head>        
  4. <title>Media Example</title>    
  5.     
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>    
  7. <script type="text/javascript" charset="utf-8">    
  8.     
  9.     // 等待加载PhoneGap    
  10.     document.addEventListener("deviceready", onDeviceReady, false);     
  11.         
  12.     // PhoneGap加载完毕    
  13.     function onDeviceReady() {    
  14.         playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");    
  15.     }    
  16.         
  17.     // 音频播放器    
  18.     var my_media = null;    
  19.     var mediaTimer = null;    
  20.         
  21.     // 播放音频    
  22.     function playAudio(src) {    
  23.         // 从目标文件创建Media对象    
  24.         my_media = new Media(src, onSuccess, onError);    
  25.         
  26.         // 播放音频    
  27.         my_media.play();    
  28.         
  29.         // 每秒更新一次媒体播放到的位置    
  30.         if (mediaTimer == null) {    
  31.             mediaTimer = setInterval(function() {    
  32.                 // 获取媒体播放到的位置    
  33.                 my_media.getCurrentPosition(    
  34.                     // 获取成功后调用的回调函数    
  35.                     function(position) {    
  36.                         if (position > -1) {    
  37.                             setAudioPosition((position/1000) + " sec");    
  38.                         }    
  39.                     },    
  40.                     // 发生错误后调用的回调函数    
  41.                     function(e) {    
  42.                         console.log("Error getting pos=" + e);    
  43.                         setAudioPosition("Error: " + e);    
  44.                     }    
  45.                 );    
  46.             }, 1000);    
  47.         }    
  48.     }    
  49.         
  50.     // 暂停音频播放    
  51.     function pauseAudio() {    
  52.         if (my_media) {    
  53.             my_media.pause();    
  54.         }    
  55.     }    
  56.         
  57.     // 停止音频播放    
  58.     function stopAudio() {    
  59.         if (my_media) {    
  60.             my_media.stop();    
  61.         }    
  62.         clearInterval(mediaTimer);    
  63.         mediaTimer = null;    
  64.     }    
  65.         
  66.     // 创建Media对象成功后调用的回调函数    
  67.     function onSuccess() {    
  68.         console.log("playAudio():Audio Success");    
  69.     }    
  70.         
  71.     // 创建Media对象出错后调用的回调函数    
  72.     function onError(error) {    
  73.         alert('code: '    + error.code    + '\n' +     
  74.             'message: ' + error.message + '\n');    
  75.     }    
  76.         
  77.     // 设置音频播放位置    
  78.     function setAudioPosition(position) {    
  79.         document.getElementById('audio_position').innerHTML = position;    
  80.     }    
  81.     
  82. </script>    
  83. </head>    
  84. <body>    
  85.     <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>    
  86.     <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>    
  87.     <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>    
  88.     <p id="audio_position"></p>    
  89. </body>    
  90. </html>    
  91. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> 
  92. <html> 
  93. <head>   
  94. <title>Media Example</title> 
  95.  
  96. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  97. <script type="text/javascript" charset="utf-8"> 
  98.  
  99.  // 等待加载PhoneGap  
  100.  document.addEventListener("deviceready", onDeviceReady, false);   
  101.    
  102.  // PhoneGap加载完毕  
  103.  function onDeviceReady() {  
  104.   playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");  
  105.  }  
  106.    
  107.  // 音频播放器  
  108.  var my_media = null;  
  109.  var mediaTimer = null;  
  110.    
  111.  // 播放音频  
  112.  function playAudio(src) {  
  113.   // 从目标文件创建Media对象  
  114.   my_media = new Media(src, onSuccess, onError);  
  115.    
  116.   // 播放音频  
  117.   my_media.play();  
  118.    
  119.   // 每秒更新一次媒体播放到的位置  
  120.   if (mediaTimer == null) {  
  121.    mediaTimer = setInterval(function() {  
  122.     // 获取媒体播放到的位置  
  123.     my_media.getCurrentPosition(  
  124.      // 获取成功后调用的回调函数  
  125.      function(position) {  
  126.       if (position > -1) {  
  127.        setAudioPosition((position/1000) + " sec");  
  128.       }  
  129.      },  
  130.      // 发生错误后调用的回调函数  
  131.      function(e) {  
  132.       console.log("Error getting pos=" + e);  
  133.       setAudioPosition("Error: " + e);  
  134.      }  
  135.     );  
  136.    }, 1000);  
  137.   }  
  138.  }  
  139.    
  140.  // 暂停音频播放  
  141.  function pauseAudio() {  
  142.   if (my_media) {  
  143.    my_media.pause();  
  144.   }  
  145.  }  
  146.    
  147.  // 停止音频播放  
  148.  function stopAudio() {  
  149.   if (my_media) {  
  150.    my_media.stop();  
  151.   }  
  152.   clearInterval(mediaTimer);  
  153.   mediaTimer = null;  
  154.  }  
  155.    
  156.  // 创建Media对象成功后调用的回调函数  
  157.  function onSuccess() {  
  158.   console.log("playAudio():Audio Success");  
  159.  }  
  160.    
  161.  // 创建Media对象出错后调用的回调函数  
  162.  function onError(error) {  
  163.   alert('code: '    + error.code    + '\n' +   
  164.    'message: ' + error.message + '\n');  
  165.  }  
  166.    
  167.  // 设置音频播放位置  
  168.  function setAudioPosition(position) {  
  169.   document.getElementById('audio_position').innerHTML = position;  
  170.  }  
  171.  
  172. </script> 
  173. </head> 
  174. <body> 
  175.  <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a> 
  176.  <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a> 
  177.  <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a> 
  178.  <p id="audio_position"></p> 
  179. </body> 
  180. </html> 

media.play  
 
开始或恢复播放一个音频文件。

  1. media.play();    
  2. media.play(); 

说明:

media.play是一个用于开始或恢复播放音频文件的同步函数。

支持的平台:

Android

iOS

简单的范例:

  1. // 播放音频文件    
  2. function playAudio(url) {    
  3.     // 播放url指向的音频文件    
  4.     var my_media = new Media(url,    
  5.     // 播放成功后调用的回调函数    
  6.     function() {    
  7.         console.log("playAudio():Audio Success");    
  8.     },    
  9.     // 播放出错后调用的回调函数    
  10.     function(err) {    
  11.         console.log("playAudio():Audio Error: "+err);    
  12.     });    
  13.     
  14. // 播放音频文件    
  15. my_media.play();    
  16. }    
  17. // 播放音频文件  
  18. function playAudio(url) {  
  19.  // 播放url指向的音频文件  
  20.  var my_media = new Media(url,  
  21.  // 播放成功后调用的回调函数  
  22.  function() {  
  23.      console.log("playAudio():Audio Success");  
  24.  },  
  25.  // 播放出错后调用的回调函数  
  26.  function(err) {  
  27.   console.log("playAudio():Audio Error: "+err);  
  28.  });  
  29.  
  30. // 播放音频文件  
  31. my_media.play();  

#p#

完整的范例:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">    
  2. <html>    
  3. <head>        
  4. <title>Media Example</title>    
  5.     
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>    
  7. <script type="text/javascript" charset="utf-8">    
  8.     
  9.     // 等待加载PhoneGap    
  10.     document.addEventListener("deviceready", onDeviceReady, false);     
  11.         
  12.     // PhoneGap加载完毕    
  13.     function onDeviceReady() {    
  14.         playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");    
  15.     }    
  16.         
  17.     // 音频播放器    
  18.     var my_media = null;    
  19.     var mediaTimer = null;    
  20.         
  21.     // 播放音频文件    
  22.     function playAudio(src) {    
  23.         // 从目标文件创建Media对象    
  24.         my_media = new Media(src, onSuccess, onError);    
  25.         
  26.         // 播放音频    
  27.         my_media.play();    
  28.         
  29.         // 每秒更新一次媒体播放到的位置    
  30.         if (mediaTimer == null) {    
  31.             mediaTimer = setInterval(function() {    
  32.                 // 获取媒体播放到的位置    
  33.                 my_media.getCurrentPosition(    
  34.                     // 获取成功后调用的回调函数    
  35.                     function(position) {    
  36.                         if (position > -1) {    
  37.                             setAudioPosition((position/1000) + " sec");    
  38.                         }    
  39.                     },    
  40.                     // 发生错误后调用的回调函数    
  41.                     function(e) {    
  42.                         console.log("Error getting pos=" + e);    
  43.                         setAudioPosition("Error: " + e);    
  44.                     }    
  45.                 );    
  46.             }, 1000);    
  47.         }    
  48.     }    
  49.         
  50.     // 暂停音频播放     
  51.     function pauseAudio() {    
  52.         if (my_media) {    
  53.             my_media.pause();    
  54.         }    
  55.     }    
  56.         
  57.     // 停止音频播放           
  58.     function stopAudio() {    
  59.         if (my_media) {    
  60.             my_media.stop();    
  61.         }    
  62.         clearInterval(mediaTimer);    
  63.         mediaTimer = null;    
  64.     }    
  65.         
  66.     // 创建Media对象成功后调用的回调函数    
  67.     function onSuccess() {    
  68.         console.log("playAudio():Audio Success");    
  69.     }    
  70.         
  71.     // 创建Media对象出错后调用的回调函数    
  72.     function onError(error) {    
  73.         alert('code: '    + error.code    + '\n' +     
  74.               'message: ' + error.message + '\n');    
  75.     }    
  76.         
  77.     // 设置音频播放位置    
  78.     function setAudioPosition(position) {    
  79.         document.getElementById('audio_position').innerHTML = position;    
  80.     }    
  81.     
  82. </script>    
  83. </head>    
  84. <body>    
  85.     <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>    
  86.     <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>    
  87.     <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>    
  88.     <p id="audio_position"></p>    
  89. </body>    
  90. </html>    
  91. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> 
  92. <html> 
  93. <head>   
  94. <title>Media Example</title> 
  95.  
  96. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  97. <script type="text/javascript" charset="utf-8"> 
  98.  
  99.  // 等待加载PhoneGap  
  100.  document.addEventListener("deviceready", onDeviceReady, false);   
  101.    
  102.  // PhoneGap加载完毕  
  103.  function onDeviceReady() {  
  104.   playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");  
  105.  }  
  106.    
  107.  // 音频播放器  
  108.  var my_media = null;  
  109.  var mediaTimer = null;  
  110.    
  111.  // 播放音频文件  
  112.  function playAudio(src) {  
  113.   // 从目标文件创建Media对象  
  114.   my_media = new Media(src, onSuccess, onError);  
  115.    
  116.   // 播放音频  
  117.   my_media.play();  
  118.    
  119.   // 每秒更新一次媒体播放到的位置  
  120.   if (mediaTimer == null) {  
  121.    mediaTimer = setInterval(function() {  
  122.     // 获取媒体播放到的位置  
  123.     my_media.getCurrentPosition(  
  124.      // 获取成功后调用的回调函数  
  125.      function(position) {  
  126.       if (position > -1) {  
  127.        setAudioPosition((position/1000) + " sec");  
  128.       }  
  129.      },  
  130.      // 发生错误后调用的回调函数  
  131.      function(e) {  
  132.       console.log("Error getting pos=" + e);  
  133.       setAudioPosition("Error: " + e);  
  134.      }  
  135.     );  
  136.    }, 1000);  
  137.   }  
  138.  }  
  139.    
  140.  // 暂停音频播放   
  141.  function pauseAudio() {  
  142.   if (my_media) {  
  143.    my_media.pause();  
  144.   }  
  145.  }  
  146.    
  147.  // 停止音频播放         
  148.  function stopAudio() {  
  149.   if (my_media) {  
  150.    my_media.stop();  
  151.   }  
  152.   clearInterval(mediaTimer);  
  153.   mediaTimer = null;  
  154.  }  
  155.    
  156.  // 创建Media对象成功后调用的回调函数  
  157.  function onSuccess() {  
  158.   console.log("playAudio():Audio Success");  
  159.  }  
  160.    
  161.  // 创建Media对象出错后调用的回调函数  
  162.  function onError(error) {  
  163.   alert('code: '    + error.code    + '\n' +   
  164.      'message: ' + error.message + '\n');  
  165.  }  
  166.    
  167.  // 设置音频播放位置  
  168.  function setAudioPosition(position) {  
  169.   document.getElementById('audio_position').innerHTML = position;  
  170.  }  
  171.  
  172. </script> 
  173. </head> 
  174. <body> 
  175.  <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a> 
  176.  <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a> 
  177.  <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a> 
  178.  <p id="audio_position"></p> 
  179. </body> 
  180. </html> 

media.pause 

暂停播放一个音频文件。

  1. media.pause();    
  2. media.pause(); 

说明:

media.pause是一个用于暂停播放音频文件的同步函数。

支持的平台:

Android

iOS

简单的范例:

  1. // 播放音频    
  2. function playAudio(url) {    
  3.     // 播放url指向的音频文件    
  4.     var my_media = new Media(url,    
  5.         // 获取成功后调用的回调函数    
  6.         function() {    
  7.             console.log("playAudio():Audio Success");    
  8.         },    
  9.         // 发生错误后调用的回调函数    
  10.         function(err) {    
  11.             console.log("playAudio():Audio Error: "+err);    
  12.         }    
  13.     )    
  14.     
  15.     // 播放音频    
  16.     my_media.play();    
  17.     
  18.     // 暂停10秒钟    
  19.     setTimeout(function() {    
  20.         media.pause();    
  21.     }, 10000);            
  22. }    
  23. // 播放音频  
  24. function playAudio(url) {  
  25.  // 播放url指向的音频文件  
  26.  var my_media = new Media(url,  
  27.   // 获取成功后调用的回调函数  
  28.   function() {  
  29.    console.log("playAudio():Audio Success");  
  30.   },  
  31.   // 发生错误后调用的回调函数  
  32.   function(err) {  
  33.    console.log("playAudio():Audio Error: "+err);  
  34.   }  
  35.  )  
  36.  
  37.  // 播放音频  
  38.  my_media.play();  
  39.  
  40.  // 暂停10秒钟  
  41.  setTimeout(function() {  
  42.   media.pause();  
  43.     }, 10000);          

完整的范例:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">    
  2. <html>    
  3. <head>        
  4. <title>Media Example</title>    
  5.     
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>    
  7. <script type="text/javascript" charset="utf-8">    
  8.     
  9.     // 等待加载PhoneGap    
  10.     document.addEventListener("deviceready", onDeviceReady, false);     
  11.         
  12.     // PhoneGap加载完毕    
  13.     function onDeviceReady() {    
  14.         playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");    
  15.     }    
  16.         
  17.     // 音频播放器    
  18.     var my_media = null;    
  19.     var mediaTimer = null;    
  20.         
  21.     // 播放音频    
  22.     function playAudio(src) {    
  23.         // 从目标播放文件创建Media对象    
  24.         my_media = new Media(src, onSuccess, onError);    
  25.         // 播放音频    
  26.         my_media.play();    
  27.         
  28.         // 每秒更新一次媒体播放到的位置    
  29.         if (mediaTimer == null) {    
  30.             mediaTimer = setInterval(function() {    
  31.                 // 获取媒体播放到的位置    
  32.                 my_media.getCurrentPosition(    
  33.                     // 获取成功后调用的回调函数    
  34.                     function(position) {    
  35.                         if (position > -1) {    
  36.                             setAudioPosition((position/1000) + " sec");    
  37.                         }    
  38.                     },    
  39.                     // 发生错误后调用的回调函数    
  40.                     function(e) {    
  41.                         console.log("Error getting pos=" + e);    
  42.                         setAudioPosition("Error: " + e);    
  43.                     }    
  44.                 );    
  45.             }, 1000);    
  46.         }    
  47.     }    
  48.         
  49.     // 暂停音频播放    
  50.     function pauseAudio() {    
  51.         if (my_media) {    
  52.             my_media.pause();    
  53.         }    
  54.     }    
  55.         
  56.     // 停止音频播放    
  57.     function stopAudio() {    
  58.         if (my_media) {    
  59.             my_media.stop();    
  60.         }    
  61.         clearInterval(mediaTimer);    
  62.         mediaTimer = null;    
  63.     }    
  64.         
  65.     // 创建Media对象成功后调用的回调函数    
  66.     function onSuccess() {    
  67.         console.log("playAudio():Audio Success");    
  68.     }    
  69.         
  70.     // 创建Media对象出错后调用的回调函数    
  71.     function onError(error) {    
  72.         alert('code: '    + error.code    + '\n' +     
  73.             'message: ' + error.message + '\n');    
  74.     }    
  75.         
  76.     // 设置音频播放位置     
  77.     function setAudioPosition(position) {    
  78.         document.getElementById('audio_position').innerHTML = position;    
  79.     }    
  80.     
  81. </script>    
  82. </head>    
  83. <body>    
  84.     <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>    
  85.     <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>    
  86.     <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>    
  87.     <p id="audio_position"></p>    
  88. </body>    
  89. </html>    
  90. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> 
  91. <html> 
  92. <head>   
  93. <title>Media Example</title> 
  94.  
  95. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  96. <script type="text/javascript" charset="utf-8"> 
  97.  
  98.  // 等待加载PhoneGap  
  99.  document.addEventListener("deviceready", onDeviceReady, false);   
  100.    
  101.  // PhoneGap加载完毕  
  102.  function onDeviceReady() {  
  103.   playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");  
  104.  }  
  105.    
  106.  // 音频播放器  
  107.  var my_media = null;  
  108.  var mediaTimer = null;  
  109.    
  110.  // 播放音频  
  111.  function playAudio(src) {  
  112.   // 从目标播放文件创建Media对象  
  113.   my_media = new Media(src, onSuccess, onError);  
  114.   // 播放音频  
  115.   my_media.play();  
  116.    
  117.   // 每秒更新一次媒体播放到的位置  
  118.   if (mediaTimer == null) {  
  119.    mediaTimer = setInterval(function() {  
  120.     // 获取媒体播放到的位置  
  121.     my_media.getCurrentPosition(  
  122.      // 获取成功后调用的回调函数  
  123.      function(position) {  
  124.       if (position > -1) {  
  125.        setAudioPosition((position/1000) + " sec");  
  126.       }  
  127.      },  
  128.      // 发生错误后调用的回调函数  
  129.      function(e) {  
  130.       console.log("Error getting pos=" + e);  
  131.       setAudioPosition("Error: " + e);  
  132.      }  
  133.     );  
  134.    }, 1000);  
  135.   }  
  136.  }  
  137.    
  138.  // 暂停音频播放  
  139.  function pauseAudio() {  
  140.   if (my_media) {  
  141.    my_media.pause();  
  142.   }  
  143.  }  
  144.    
  145.  // 停止音频播放  
  146.  function stopAudio() {  
  147.   if (my_media) {  
  148.    my_media.stop();  
  149.   }  
  150.   clearInterval(mediaTimer);  
  151.   mediaTimer = null;  
  152.  }  
  153.    
  154.  // 创建Media对象成功后调用的回调函数  
  155.  function onSuccess() {  
  156.   console.log("playAudio():Audio Success");  
  157.  }  
  158.    
  159.  // 创建Media对象出错后调用的回调函数  
  160.  function onError(error) {  
  161.   alert('code: '    + error.code    + '\n' +   
  162.    'message: ' + error.message + '\n');  
  163.  }  
  164.    
  165.  // 设置音频播放位置   
  166.  function setAudioPosition(position) {  
  167.   document.getElementById('audio_position').innerHTML = position;  
  168.  }  
  169.  
  170. </script> 
  171. </head> 
  172. <body> 
  173.  <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a> 
  174.  <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a> 
  175.  <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a> 
  176.  <p id="audio_position"></p> 
  177. </body> 
  178. </html> 

#p#

media.release 

释放底层操作系统音频资源。

  1. media.release();    
  2. media.release(); 

说明:

media.release是一个用于释放系统音频资源的同步函数。该函数对于Android系统尤为重要,因为Android系统的OpenCore(多媒体核心)的实例是有限的。开发者需要在他们不再需要相应Media资源时调用“release”函数释放它。

支持的平台:

Android

iOS

简单的范例:

  1. // 音频播放器    
  2. var my_media = new Media(src, onSuccess, onError);    
  3.     
  4. my_media.play();    
  5. my_media.stop();    
  6. my_media.release();    
  7. // 音频播放器  
  8. var my_media = new Media(src, onSuccess, onError);  
  9.  
  10. my_media.play();  
  11. my_media.stop();  
  12. my_media.release();  
  13.  
  14. 完整的范例:  
  15. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">    
  16. <html>    
  17. <head>        
  18. <title>Media Example</title>    
  19.     
  20. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>    
  21. <script type="text/javascript" charset="utf-8">    
  22.     
  23.     // 等待加载PhoneGap    
  24.     document.addEventListener("deviceready", onDeviceReady, false);     
  25.         
  26.     // PhoneGap加载完毕    
  27.     function onDeviceReady() {    
  28.         playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");    
  29.     }    
  30.         
  31.     // 音频播放器    
  32.     var my_media = null;    
  33.     var mediaTimer = null;    
  34.     // 播放音频    
  35.     function playAudio(src) {    
  36.         // 从目标播放文件创建Media对象    
  37.         my_media = new Media(src, onSuccess, onError);    
  38.         
  39.         // 播放音频    
  40.         my_media.play();    
  41.         
  42.         // 每秒更新一次媒体播放到的位置    
  43.         if (mediaTimer == null) {    
  44.             mediaTimer = setInterval(function() {    
  45.                 // 获取媒体播放到的位置    
  46.                 my_media.getCurrentPosition(    
  47.                     // 获取成功后调用的回调函数    
  48.                     function(position) {    
  49.                         if (position > -1) {    
  50.                             setAudioPosition((position/1000) + " sec");    
  51.                         }    
  52.                     },    
  53.                     // 发生错误后调用的回调函数    
  54.                     function(e) {    
  55.                         console.log("Error getting pos=" + e);    
  56.                         setAudioPosition("Error: " + e);    
  57.                     }    
  58.                 );    
  59.             }, 1000);    
  60.         }    
  61.     }    
  62.         
  63.     // 暂停音频播放           
  64.     function pauseAudio() {    
  65.         if (my_media) {    
  66.             my_media.pause();    
  67.         }    
  68.     }    
  69.         
  70.     // 停止音频播放     
  71.     function stopAudio() {    
  72.         if (my_media) {    
  73.             my_media.stop();    
  74.         }    
  75.         clearInterval(mediaTimer);    
  76.         mediaTimer = null;    
  77.     }    
  78.         
  79.     // 创建Media对象成功后调用的回调函数           
  80.     function onSuccess() {    
  81.         console.log("playAudio():Audio Success");    
  82.     }    
  83.         
  84.     // 创建Media对象出错后调用的回调函数           
  85.     function onError(error) {    
  86.         alert('code: '    + error.code    + '\n' +     
  87.             'message: ' + error.message + '\n');    
  88.     }    
  89.         
  90.     // 设置音频播放位置    
  91.     function setAudioPosition(position) {    
  92.         document.getElementById('audio_position').innerHTML = position;    
  93.     }    
  94.     
  95. </script>    
  96. </head>    
  97. <body>    
  98.     <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>    
  99.     <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>    
  100.     <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>    
  101.     <p id="audio_position"></p>    
  102. </body>    
  103. </html>    
  104. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> 
  105. <html> 
  106. <head>   
  107. <title>Media Example</title> 
  108.  
  109. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  110. <script type="text/javascript" charset="utf-8"> 
  111.  
  112.  // 等待加载PhoneGap  
  113.  document.addEventListener("deviceready", onDeviceReady, false);   
  114.    
  115.  // PhoneGap加载完毕  
  116.  function onDeviceReady() {  
  117.   playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");  
  118.  }  
  119.    
  120.  // 音频播放器  
  121.  var my_media = null;  
  122.  var mediaTimer = null;  
  123.  // 播放音频  
  124.  function playAudio(src) {  
  125.   // 从目标播放文件创建Media对象  
  126.   my_media = new Media(src, onSuccess, onError);  
  127.    
  128.   // 播放音频  
  129.   my_media.play();  
  130.    
  131.   // 每秒更新一次媒体播放到的位置  
  132.   if (mediaTimer == null) {  
  133.    mediaTimer = setInterval(function() {  
  134.     // 获取媒体播放到的位置  
  135.     my_media.getCurrentPosition(  
  136.      // 获取成功后调用的回调函数  
  137.      function(position) {  
  138.       if (position > -1) {  
  139.        setAudioPosition((position/1000) + " sec");  
  140.       }  
  141.      },  
  142.      // 发生错误后调用的回调函数  
  143.      function(e) {  
  144.       console.log("Error getting pos=" + e);  
  145.       setAudioPosition("Error: " + e);  
  146.      }  
  147.     );  
  148.    }, 1000);  
  149.   }  
  150.  }  
  151.    
  152.  // 暂停音频播放         
  153.  function pauseAudio() {  
  154.   if (my_media) {  
  155.    my_media.pause();  
  156.   }  
  157.  }  
  158.    
  159.  // 停止音频播放   
  160.  function stopAudio() {  
  161.   if (my_media) {  
  162.    my_media.stop();  
  163.   }  
  164.   clearInterval(mediaTimer);  
  165.   mediaTimer = null;  
  166.  }  
  167.    
  168.  // 创建Media对象成功后调用的回调函数         
  169.  function onSuccess() {  
  170.   console.log("playAudio():Audio Success");  
  171.  }  
  172.    
  173.  // 创建Media对象出错后调用的回调函数         
  174.  function onError(error) {  
  175.   alert('code: '    + error.code    + '\n' +   
  176.    'message: ' + error.message + '\n');  
  177.  }  
  178.    
  179.  // 设置音频播放位置  
  180.  function setAudioPosition(position) {  
  181.   document.getElementById('audio_position').innerHTML = position;  
  182.  }  
  183.  
  184. </script> 
  185. </head> 
  186. <body> 
  187.  <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a> 
  188.  <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a> 
  189.  <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a> 
  190.  <p id="audio_position"></p> 
  191. </body> 
  192. </html> 

media.startRecord 

开始录制一个音频文件。

  1. media.startRecord();    
  2.  
  3. media.startRecord(); 

说明:

media.startRecord是用于开始录制一个音频文件的同步函数。

支持的平台:

Android

iOS

简单的范例:

  1. // 录制音频    
  2. function recordAudio() {    
  3.     var src = "myrecording.mp3";    
  4.     var mediaRec = new Media(src,    
  5.         // 新建Media对象成功后调用的回调函数    
  6.         function() {    
  7.             console.log("recordAudio():Audio Success");    
  8.         },    
  9.     
  10.         // 新建Media对象出错后调用的回调函数    
  11.         function(err) {    
  12.             console.log("recordAudio():Audio Error: "+ err.code);    
  13.         }    
  14.     );    
  15.     
  16.     // 录制音频    
  17.     mediaRec.startRecord();    
  18. }    
  19. // 录制音频  
  20. function recordAudio() {  
  21.  var src = "myrecording.mp3";  
  22.  var mediaRec = new Media(src,  
  23.      // 新建Media对象成功后调用的回调函数  
  24.      function() {  
  25.       console.log("recordAudio():Audio Success");  
  26.      },  
  27.  
  28.      // 新建Media对象出错后调用的回调函数  
  29.      function(err) {  
  30.       console.log("recordAudio():Audio Error: "+ err.code);  
  31.      }  
  32.  );  
  33.  
  34.  // 录制音频  
  35.  mediaRec.startRecord();  

完整的范例:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">    
  2. <html>    
  3. <head>        
  4. <title>Device Properties Example</title>    
  5.     
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>    
  7. <script type="text/javascript" charset="utf-8">    
  8.     
  9.     // 等待加载PhoneGap    
  10.     document.addEventListener("deviceready", onDeviceReady, false);     
  11.         
  12.     // 录制音频    
  13.     function recordAudio() {    
  14.         var src = "myrecording.mp3";    
  15.         var mediaRec = new Media(src, onSuccess, onError);    
  16.         
  17.         // 开始录制音频    
  18.         mediaRec.startRecord();    
  19.         
  20.         // 10秒钟后停止录制    
  21.         var recTime = 0;    
  22.         var recInterval = setInterval(function() {    
  23.             recTimerecTimerecTime = recTime + 1;    
  24.             setAudioPosition(recTime + " sec");    
  25.             if (recTime >= 10) {    
  26.                 clearInterval(recInterval);    
  27.                 mediaRec.stopRecord();    
  28.             }    
  29.         }, 1000);    
  30.     }    
  31.         
  32.     // PhoneGap加载完毕     
  33.     function onDeviceReady() {    
  34.         recordAudio();    
  35.     }    
  36.         
  37.     // 创建Media对象成功后调用的回调函数    
  38.     function onSuccess() {    
  39.         console.log("recordAudio():Audio Success");    
  40.     }    
  41.         
  42.     // 创建Media对象出错后调用的回调函数    
  43.     function onError(error) {    
  44.         alert('code: '    + error.code    + '\n' +     
  45.               'message: ' + error.message + '\n');    
  46.     }    
  47.         
  48.     // 设置音频播放位置    
  49.     function setAudioPosition(position) {    
  50.         document.getElementById('audio_position').innerHTML = position;    
  51.     }    
  52.     
  53. </script>    
  54. </head>    
  55. <body>    
  56.     <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>    
  57.     <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>    
  58.     <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>    
  59.     <p id="audio_position"></p>    
  60. </body>    
  61. </html>    
  62. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> 
  63. <html> 
  64. <head>   
  65. <title>Device Properties Example</title> 
  66.  
  67. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  68. <script type="text/javascript" charset="utf-8"> 
  69.  
  70.  // 等待加载PhoneGap  
  71.  document.addEventListener("deviceready", onDeviceReady, false);   
  72.    
  73.  // 录制音频  
  74.  function recordAudio() {  
  75.   var src = "myrecording.mp3";  
  76.   var mediaRec = new Media(src, onSuccess, onError);  
  77.    
  78.   // 开始录制音频  
  79.   mediaRec.startRecord();  
  80.    
  81.   // 10秒钟后停止录制  
  82.   var recTime = 0;  
  83.   var recInterval = setInterval(function() {  
  84.    recTimerecTime = recTime + 1;  
  85.    setAudioPosition(recTime + " sec");  
  86.    if (recTime >= 10) {  
  87.     clearInterval(recInterval);  
  88.     mediaRec.stopRecord();  
  89.    }  
  90.   }, 1000);  
  91.  }  
  92.    
  93.  // PhoneGap加载完毕   
  94.  function onDeviceReady() {  
  95.   recordAudio();  
  96.  }  
  97.    
  98.  // 创建Media对象成功后调用的回调函数  
  99.  function onSuccess() {  
  100.   console.log("recordAudio():Audio Success");  
  101.  }  
  102.    
  103.  // 创建Media对象出错后调用的回调函数  
  104.  function onError(error) {  
  105.   alert('code: '    + error.code    + '\n' +   
  106.      'message: ' + error.message + '\n');  
  107.  }  
  108.    
  109.  // 设置音频播放位置  
  110.  function setAudioPosition(position) {  
  111.   document.getElementById('audio_position').innerHTML = position;  
  112.  }  
  113.  
  114. </script> 
  115. </head> 
  116. <body> 
  117.  <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a> 
  118.  <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a> 
  119.  <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a> 
  120.  <p id="audio_position"></p> 
  121. </body> 
  122. </html> 

#p#

iOS 的特异情况:

用于录制的文件必须已经存在并是.wav类型,可以通过File API来进行文件的创建。

media.stop  

停止播放一个音频文件。

  1. media.stop();    
  2. media.stop(); 

说明:

media.stop函数是一个用于停止播放音频文件的同步函数。

支持的平台:

Android

iOS

简单的范例:

  1. // 播放音频    
  2. function playAudio(url) {    
  3. // 播放url指向的音频文件    
  4. var my_media = new Media(url,    
  5.     // 新建Media对象成功后调用的回调函数    
  6.     function() {    
  7.         console.log("playAudio():Audio Success");    
  8.     },    
  9.     // 新建Media对象出错后调用的回调函数    
  10.     function(err) {    
  11.         console.log("playAudio():Audio Error: "+err);    
  12.     }    
  13. );    
  14.     
  15. // 播放音频    
  16. my_media.play();    
  17.     
  18. // 10秒钟后暂停播放    
  19. setTimeout(function() {    
  20.     my_media.stop();    
  21.     }, 10000);            
  22. }    
  23. // 播放音频  
  24. function playAudio(url) {  
  25. // 播放url指向的音频文件  
  26. var my_media = new Media(url,  
  27.  // 新建Media对象成功后调用的回调函数  
  28.     function() {  
  29.      console.log("playAudio():Audio Success");  
  30.     },  
  31.     // 新建Media对象出错后调用的回调函数  
  32.     function(err) {  
  33.      console.log("playAudio():Audio Error: "+err);  
  34.  }  
  35. );  
  36.  
  37. // 播放音频  
  38. my_media.play();  
  39.  
  40. // 10秒钟后暂停播放  
  41. setTimeout(function() {  
  42.     my_media.stop();  
  43.  }, 10000);          

完整的范例:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">    
  2. <html>    
  3. <head>        
  4. <title>Media Example</title>    
  5.     
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>    
  7. <script type="text/javascript" charset="utf-8">    
  8.     
  9.     // 等待加载PhoneGap    
  10.     document.addEventListener("deviceready", onDeviceReady, false);     
  11.         
  12.     // PhoneGap加载完毕    
  13.     function onDeviceReady() {    
  14.         playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");    
  15.     }    
  16.         
  17.     // 音频播放器    
  18.     var my_media = null;    
  19.     var mediaTimer = null;    
  20.         
  21.     // 播放音频    
  22.     function playAudio(src) {    
  23.         // 从目标播放文件创建Media对象    
  24.         my_media = new Media(src, onSuccess, onError);    
  25.         
  26.         // 播放音频    
  27.         my_media.play();    
  28.         
  29.         // 每秒更新一次媒体播放到的位置    
  30.         if (mediaTimer == null) {    
  31.             mediaTimer = setInterval(function() {    
  32.                 // 获取媒体播放到的位置    
  33.                 my_media.getCurrentPosition(    
  34.                     // 获取成功后调用的回调函数    
  35.                     function(position) {    
  36.                         if (position > -1) {    
  37.                             setAudioPosition((position/1000) + " sec");    
  38.                         }    
  39.                     },    
  40.                     // 发生错误后调用的回调函数    
  41.                     function(e) {    
  42.                         console.log("Error getting pos=" + e);    
  43.                         setAudioPosition("Error: " + e);    
  44.                     }    
  45.                 );    
  46.             }, 1000);    
  47.         }    
  48.     }    
  49.         
  50.     // 暂停音频播放    
  51.     function pauseAudio() {    
  52.         if (my_media) {    
  53.             my_media.pause();    
  54.         }    
  55.     }    
  56.         
  57.     // 停止音频播放           
  58.     function stopAudio() {    
  59.         if (my_media) {    
  60.             my_media.stop();    
  61.         }    
  62.         clearInterval(mediaTimer);    
  63.         mediaTimer = null;    
  64.     }    
  65.         
  66.     // 创建Media对象成功后调用的回调函数           
  67.     function onSuccess() {    
  68.         console.log("playAudio():Audio Success");    
  69.     }    
  70.         
  71.     // 创建Media对象出错后调用的回调函数    
  72.     function onError(error) {    
  73.         alert('code: '    + error.code    + '\n' +     
  74.               'message: ' + error.message + '\n');    
  75.     }    
  76.         
  77.     // 设置音频播放位置    
  78.     function setAudioPosition(position) {    
  79.         document.getElementById('audio_position').innerHTML = position;    
  80.     }    
  81.     
  82. </script>    
  83. </head>    
  84. <body>    
  85.     <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>    
  86.     <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>    
  87.     <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>    
  88.     <p id="audio_position"></p>    
  89. </body>    
  90. </html>    
  91. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> 
  92. <html> 
  93. <head>   
  94. <title>Media Example</title> 
  95.  
  96. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  97. <script type="text/javascript" charset="utf-8"> 
  98.  
  99.  // 等待加载PhoneGap  
  100.  document.addEventListener("deviceready", onDeviceReady, false);   
  101.    
  102.  // PhoneGap加载完毕  
  103.  function onDeviceReady() {  
  104.   playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");  
  105.  }  
  106.    
  107.  // 音频播放器  
  108.  var my_media = null;  
  109.  var mediaTimer = null;  
  110.    
  111.  // 播放音频  
  112.  function playAudio(src) {  
  113.   // 从目标播放文件创建Media对象  
  114.   my_media = new Media(src, onSuccess, onError);  
  115.    
  116.   // 播放音频  
  117.   my_media.play();  
  118.    
  119.   // 每秒更新一次媒体播放到的位置  
  120.   if (mediaTimer == null) {  
  121.    mediaTimer = setInterval(function() {  
  122.     // 获取媒体播放到的位置  
  123.     my_media.getCurrentPosition(  
  124.      // 获取成功后调用的回调函数  
  125.      function(position) {  
  126.       if (position > -1) {  
  127.        setAudioPosition((position/1000) + " sec");  
  128.       }  
  129.      },  
  130.      // 发生错误后调用的回调函数  
  131.      function(e) {  
  132.       console.log("Error getting pos=" + e);  
  133.       setAudioPosition("Error: " + e);  
  134.      }  
  135.     );  
  136.    }, 1000);  
  137.   }  
  138.  }  
  139.    
  140.  // 暂停音频播放  
  141.  function pauseAudio() {  
  142.   if (my_media) {  
  143.    my_media.pause();  
  144.   }  
  145.  }  
  146.    
  147.  // 停止音频播放         
  148.  function stopAudio() {  
  149.   if (my_media) {  
  150.    my_media.stop();  
  151.   }  
  152.   clearInterval(mediaTimer);  
  153.   mediaTimer = null;  
  154.  }  
  155.    
  156.  // 创建Media对象成功后调用的回调函数         
  157.  function onSuccess() {  
  158.   console.log("playAudio():Audio Success");  
  159.  }  
  160.    
  161.  // 创建Media对象出错后调用的回调函数  
  162.  function onError(error) {  
  163.   alert('code: '    + error.code    + '\n' +   
  164.      'message: ' + error.message + '\n');  
  165.  }  
  166.    
  167.  // 设置音频播放位置  
  168.  function setAudioPosition(position) {  
  169.   document.getElementById('audio_position').innerHTML = position;  
  170.  }  
  171.  
  172. </script> 
  173. </head> 
  174. <body> 
  175.  <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a> 
  176.  <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a> 
  177.  <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a> 
  178.  <p id="audio_position"></p> 
  179. </body> 
  180. </html> 

media.stopRecord 

停止录制一个音频文件。

  1. media.stopRecord();    
  2. media.stopRecord(); 

说明:

media.stopRecord是用于停止录制一个音频文件的同步函数。

支持的平台:

Android

iOS

简单的范例:

  1. // 录制音频     
  2. function recordAudio() {     
  3.     var src = "myrecording.mp3";     
  4.     var mediaRec = new Media(src,     
  5.         // 新建Media对象成功后调用的回调函数     
  6.         function() {     
  7.             console.log("recordAudio():Audio Success");     
  8.         },     
  9.     
  10.         // 新建Media对象出错后调用的回调函数     
  11.         function(err) {     
  12.             console.log("recordAudio():Audio Error: "+ err.code);     
  13.         }    
  14.     );     
  15.     
  16.     // 开始录制音频     
  17.     mediaRec.startRecord();     
  18.     
  19.     // 10秒后停止录制    
  20.     setTimeout(function() {     
  21.         mediaRec.stopRecord();     
  22.     }, 10000);     
  23. }    
  24. // 录制音频   
  25. function recordAudio() {   
  26.  var src = "myrecording.mp3";   
  27.  var mediaRec = new Media(src,   
  28.   // 新建Media对象成功后调用的回调函数   
  29.   function() {   
  30.    console.log("recordAudio():Audio Success");   
  31.   },   
  32.  
  33.   // 新建Media对象出错后调用的回调函数   
  34.   function(err) {   
  35.    console.log("recordAudio():Audio Error: "+ err.code);   
  36.   }  
  37.  );   
  38.  
  39.  // 开始录制音频   
  40.  mediaRec.startRecord();   
  41.  
  42.  // 10秒后停止录制  
  43.  setTimeout(function() {   
  44.   mediaRec.stopRecord();   
  45.  }, 10000);   

完整的范例:

  1. <!DOCTYPE html>    
  2. <html>    
  3. <head>        
  4. <title>Device Properties Example</title>     
  5.     
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>     
  7. <script type="text/javascript" charset="utf-8">     
  8.     
  9.     // 等待加载PhoneGap    
  10.     document.addEventListener("deviceready", onDeviceReady, false);      
  11.         
  12.     // 录制音频     
  13.     function recordAudio() {     
  14.         var src = "myrecording.mp3";     
  15.         var mediaRec = new Media(src, onSuccess, onError);     
  16.         
  17.         // 开始录制音频     
  18.         mediaRec.startRecord();     
  19.         
  20.         // 10秒后停止录制    
  21.         var recTime = 0;     
  22.         var recInterval = setInterval(function() {     
  23.             recTimerecTimerecTime = recTime + 1;     
  24.             setAudioPosition(recTime + " sec");     
  25.             if (recTime >= 10) {     
  26.                 clearInterval(recInterval);     
  27.                 mediaRec.stopRecord();     
  28.             }     
  29.         }, 1000);     
  30.     }     
  31.         
  32.     // PhoneGap加载完毕    
  33.     function onDeviceReady() {     
  34.         recordAudio();     
  35.     }     
  36.         
  37.     // 新建Media对象成功后调用的回调函数     
  38.     function onSuccess() {     
  39.         console.log("recordAudio():Audio Success");     
  40.     }     
  41.         
  42.     // 新建Media对象出错后调用的回调函数    
  43.     function onError(error) {     
  44.         alert('code: '    + error.code    + '\n' +      
  45.               'message: ' + error.message + '\n');     
  46.     }     
  47.         
  48.     // 设置音频播放位置     
  49.     function setAudioPosition(position) {     
  50.         document.getElementById('audio_position').innerHTML = position;     
  51.     }     
  52.     
  53. </script>    
  54. </head>    
  55. <body>    
  56.     <p id="media">Recording audio...</p>    
  57.     <p id="audio_position"></p>    
  58. </body>    
  59. </html>    
  60. <!DOCTYPE html> 
  61. <html> 
  62. <head>   
  63. <title>Device Properties Example</title>   
  64.  
  65. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>   
  66. <script type="text/javascript" charset="utf-8">   
  67.  
  68.  // 等待加载PhoneGap  
  69.  document.addEventListener("deviceready", onDeviceReady, false);    
  70.    
  71.  // 录制音频   
  72.  function recordAudio() {   
  73.   var src = "myrecording.mp3";   
  74.   var mediaRec = new Media(src, onSuccess, onError);   
  75.    
  76.   // 开始录制音频   
  77.   mediaRec.startRecord();   
  78.    
  79.   // 10秒后停止录制  
  80.   var recTime = 0;   
  81.   var recInterval = setInterval(function() {   
  82.    recTimerecTime = recTime + 1;   
  83.    setAudioPosition(recTime + " sec");   
  84.    if (recTime >= 10) {   
  85.     clearInterval(recInterval);   
  86.     mediaRec.stopRecord();   
  87.    }   
  88.   }, 1000);   
  89.  }   
  90.    
  91.  // PhoneGap加载完毕  
  92.  function onDeviceReady() {   
  93.   recordAudio();   
  94.  }   
  95.    
  96.  // 新建Media对象成功后调用的回调函数   
  97.  function onSuccess() {   
  98.   console.log("recordAudio():Audio Success");   
  99.  }   
  100.    
  101.  // 新建Media对象出错后调用的回调函数  
  102.  function onError(error) {   
  103.   alert('code: '    + error.code    + '\n' +    
  104.      'message: ' + error.message + '\n');   
  105.  }   
  106.    
  107.  // 设置音频播放位置   
  108.  function setAudioPosition(position) {   
  109.   document.getElementById('audio_position').innerHTML = position;   
  110.  }   
  111.  
  112. </script> 
  113. </head> 
  114. <body> 
  115.  <p id="media">Recording audio...</p> 
  116.  <p id="audio_position"></p> 
  117. </body> 
  118. </html> 

MediaError  
 
当发生错误时,一个MediaError对象将传递给mediaError回调函数。

属性:

code:一个在下面常量列表中定义的错误代码。

message:用于描述错误细节的错误信息。

常量:

MediaError.MEDIA_ERR_ABORTED:媒体中断错误

MediaError.MEDIA_ERR_NETWORK:网络错误

MediaError.MEDIA_ERR_DECODE:编码错误

MediaError.MEDIA_ERR_NONE_SUPPORTED:格式不支持

说明:

当发生错误时,一个MediaError对象将通过mediaError回调函数传递给用户。

mediaError

一个用户指定的回调函数,当媒体函数出现错误的时候被调用。

  1. function(error) {     
  2.     // 处理错误     
  3. }    
  4. function(error) {   
  5.  // 处理错误   

参数:

error:设备返回的错误信息。(MediaError类型)。

小结:PhoneGap API帮助文档翻译Media媒体的内容介绍完了,希望通过PhoneGap API内容的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-09-13 16:08:58

PhoneGap AP

2011-09-13 13:47:56

PhoneGap AP

2011-09-13 10:17:26

PhoneGap AP

2011-09-13 10:40:25

PhoneGap AP

2011-09-13 14:07:45

PhoneGap AP

2011-09-13 11:06:08

PhoneGap AP

2011-09-13 15:51:11

PhoneGap AP

2011-09-13 16:24:11

PhoneGap AP

2011-09-13 13:17:27

PhoneGap AP

2011-12-22 09:54:40

PhoneGap APMedia

2011-10-11 09:50:44

PhoneGap常见问题

2011-10-11 09:03:57

常见问题PhoneGap

2011-12-20 11:20:46

PhoneGap APCompass

2011-12-19 16:09:32

PhoneGap APCamera

2009-07-26 20:36:07

EclipseJDKAPI帮助文档

2011-12-22 09:27:36

PhoneGap APGeolocation

2011-12-19 16:26:39

PhoneGap APCapture

2011-12-22 10:33:39

PhoneGap APNotificatio

2011-12-22 10:45:32

PhoneGap APStorage

2011-12-21 21:56:45

PhoneGap APFile
点赞
收藏

51CTO技术栈公众号