PhoneGap API介绍:Media

网友投稿 222 2023-05-12

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

备注: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

返回返回一个音频文件的当前的位置。
复制media.getCurrentPosition(mediaSuccess, [mediaError]);  1.

参数

mediaSuccess:成功的回调函数,返回当前的位置。 mediaError:(可选项)如果发生错误时调用的回调函数。

说明

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

支持的平台

Android iOS

简单的范例

复制// 音频播放器 var my_media = new Media(src, onSuccess, onError);  // 每秒更新一次媒体播放到的位置 var mediaTimer = setInterval(function() {      // 获得媒体位置     my_media.getCurrentPosition(          // 获得成功后调用的回调函数         function(position) {              if (position > -1) {                  console.log((position/1000) + " sec");              }          },          // 发生错误后调用的回调函数         function(e) {              console.log("Error getting pos=" + e);          }      );  }, 1000);  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.

完整的范例

复制<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Media Example</title> <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script> <scripttype="text/javascript"charset="utf-8"> // 等待加载PhoneGap  document.addEventListener("deviceready", onDeviceReady, false);  // PhoneGap加载完毕  function onDeviceReady() {      playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");  // 音频播放器  var my_media = null var mediaTimer = null // 播放音频  function playAudio(src) {      // 从目标文件创建Media对象      my_media = new Media(src, onSuccess, onError);      // 播放音频      my_media.play();      // 每秒更新一次媒体播放到的位置      if (mediaTimer == null) {          mediaTimer = setInterval(function() {              // 获取媒体播放到的位置              my_media.getCurrentPosition(                          //获取成功后调用的回调函数                  function(position) {                      if (position > -1) {                          setAudioPosition((position/1000) + " sec");                      }                  },                  // 发生错误后调用的回调函数                  function(e) {                      console.log("Error getting pos=" + e);                      setAudioPosition("Error: " + e);                  }              );          }, 1000);      }  // 暂停音频播放  function pauseAudio() {      if (my_media) {          my_media.pause();      }  // 停止音频播放  function stopAudio() {      if (my_media) {          my_media.stop();      }      clearInterval(mediaTimer);      mediaTimer = null // 创建Media对象成功后调用的回调函数  function onSuccess() {      console.log("playAudio():Audio Success");  // 创建Media对象出错后调用的回调函数  function onError(error) {      alert(code:     + error.code    + \n +          message:  + error.message + \n);  // 设置音频播放位置  function setAudioPosition(position) {      document.getElementById(audio_position).innerHTML = position </script> </head> <body>     <ahref="#"class="btn large"onclick="playAudio(http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3);">Play Audio</a>     <ahref="#"class="btn large"onclick="pauseAudio();">Pause Playing Audio</a>     <ahref="#"class="btn large"onclick="stopAudio();">Stop Playing Audio</a>     <pid="audio_position"></p> </body> </html> 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.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.

media.getDuration

返回音频文件的时间长度。
复制media.getDuration();  1.

说明

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

支持的平台

Android iOS

简单的范例

复制// 音频播放器 var my_media = new Media(src, onSuccess, onError);  // 获得时间长度 var counter = 0;  var timerDur = setInterval(function() {      counter = counter + 100;      if (counter > 2000) {          clearInterval(timerDur);      }      var dur = my_media.getDuration();      if (dur > 0) {          clearInterval(timerDur);          document.getElementById(audio_duration).innerHTML = (dur/1000) + " sec"     }  }, 100);  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.

完整的范例

复制<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Media Example</title> <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script> <scripttype="text/javascript"charset="utf-8">     // 等待加载PhoneGap      document.addEventListener("deviceready", onDeviceReady, false);      // PhoneGap加载完毕      function onDeviceReady() {          playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");      }      // 音频播放器      var my_media = null     var mediaTimer = null     // 播放音频      function playAudio(src) {          // 从目标文件创建Media对象          my_media = new Media(src, onSuccess, onError);          // 播放音频          my_media.play();          // 每秒更新一次媒体播放到的位置          if (mediaTimer == null) {              mediaTimer = setInterval(function() {                  // 获取媒体播放到的位置                  my_media.getCurrentPosition(                      // 获取成功后调用的回调函数                      function(position) {                          if (position > -1) {                              setAudioPosition((position/1000) + " sec");                          }                      },                      // 发生错误后调用的回调函数                      function(e) {                          console.log("Error getting pos=" + e);                          setAudioPosition("Error: " + e);                      }                  );              }, 1000);          }      }      // 暂停音频播放      function pauseAudio() {          if (my_media) {              my_media.pause();          }      }      // 停止音频播放      function stopAudio() {          if (my_media) {              my_media.stop();          }          clearInterval(mediaTimer);          mediaTimer = null     }      // 创建Media对象成功后调用的回调函数      function onSuccess() {          console.log("playAudio():Audio Success");      }      // 创建Media对象出错后调用的回调函数      function onError(error) {          alert(code:     + error.code    + \n +              message:  + error.message + \n);      }      // 设置音频播放位置      function setAudioPosition(position) {          document.getElementById(audio_position).innerHTML = position     }  </script> </head> <body>     <ahref="#"class="btn large"onclick="playAudio(http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3);">Play Audio</a>     <ahref="#"class="btn large"onclick="pauseAudio();">Pause Playing Audio</a>     <ahref="#"class="btn large"onclick="stopAudio();">Stop Playing Audio</a>     <pid="audio_position"></p> </body> </html> 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.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.

media.play

开始或恢复播放一个音频文件。
复制media.play();  1.

说明

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

支持的平台

Android iOS

简单的范例

复制// 播放音频文件 function playAudio(url) {      // 播放url指向的音频文件     var my_media = new Media(url,      // 播放成功后调用的回调函数     function() {             console.log("playAudio():Audio Success");      },      // 播放出错后调用的回调函数     function(err) {          console.log("playAudio():Audio Error: "+err);      });  // 播放音频文件 my_media.play();  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.

完整的范例

复制<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Media Example</title> <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script> <scripttype="text/javascript"charset="utf-8">     // 等待加载PhoneGap      document.addEventListener("deviceready", onDeviceReady, false);      // PhoneGap加载完毕      function onDeviceReady() {          playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");      }      // 音频播放器      var my_media = null     var mediaTimer = null     // 播放音频文件      function playAudio(src) {          // 从目标文件创建Media对象          my_media = new Media(src, onSuccess, onError);          // 播放音频          my_media.play();          // 每秒更新一次媒体播放到的位置          if (mediaTimer == null) {              mediaTimer = setInterval(function() {                  // 获取媒体播放到的位置                  my_media.getCurrentPosition(                      // 获取成功后调用的回调函数                      function(position) {                          if (position > -1) {                              setAudioPosition((position/1000) + " sec");                          }                      },                      // 发生错误后调用的回调函数                      function(e) {                          console.log("Error getting pos=" + e);                          setAudioPosition("Error: " + e);                      }                  );              }, 1000);          }      }      // 暂停音频播放      function pauseAudio() {          if (my_media) {              my_media.pause();          }      }      // 停止音频播放             function stopAudio() {          if (my_media) {              my_media.stop();          }          clearInterval(mediaTimer);          mediaTimer = null     }      // 创建Media对象成功后调用的回调函数      function onSuccess() {          console.log("playAudio():Audio Success");      }      // 创建Media对象出错后调用的回调函数      function onError(error) {          alert(code:     + error.code    + \n +                message:  + error.message + \n);      }      // 设置音频播放位置      function setAudioPosition(position) {          document.getElementById(audio_position).innerHTML = position     }  </script> </head> <body>     <ahref="#"class="btn large"onclick="playAudio(http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3);">Play Audio</a>     <ahref="#"class="btn large"onclick="pauseAudio();">Pause Playing Audio</a>     <ahref="#"class="btn large"onclick="stopAudio();">Stop Playing Audio</a>     <pid="audio_position"></p> </body> </html> 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.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.

media.pause

暂停播放一个音频文件。
复制media.pause();  1.

说明

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

支持的平台

Android iOS

简单的范例

复制// 播放音频 function playAudio(url) {      // 播放url指向的音频文件     var my_media = new Media(url,          // 获取成功后调用的回调函数         function() {              console.log("playAudio():Audio Success");          },          // 发生错误后调用的回调函数         function(err) {              console.log("playAudio():Audio Error: "+err);          }      )      // 播放音频     my_media.play();      // 暂停10秒钟     setTimeout(function() {          media.pause();         }, 10000);          1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.

完整的范例

复制<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Media Example</title> <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script> <scripttype="text/javascript"charset="utf-8">     // 等待加载PhoneGap      document.addEventListener("deviceready", onDeviceReady, false);      // PhoneGap加载完毕      function onDeviceReady() {          playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");      }      // 音频播放器      var my_media = null     var mediaTimer = null     // 播放音频      function playAudio(src) {          // 从目标播放文件创建Media对象          my_media = new Media(src, onSuccess, onError);          // 播放音频          my_media.play();          // 每秒更新一次媒体播放到的位置          if (mediaTimer == null) {              mediaTimer = setInterval(function() {                  // 获取媒体播放到的位置                  my_media.getCurrentPosition(                      // 获取成功后调用的回调函数                      function(position) {                          if (position > -1) {                              setAudioPosition((position/1000) + " sec");                          }                      },                      // 发生错误后调用的回调函数                      function(e) {                          console.log("Error getting pos=" + e);                          setAudioPosition("Error: " + e);                      }                  );              }, 1000);          }      }      // 暂停音频播放      function pauseAudio() {          if (my_media) {              my_media.pause();          }      }      // 停止音频播放      function stopAudio() {          if (my_media) {              my_media.stop();          }          clearInterval(mediaTimer);          mediaTimer = null     }      // 创建Media对象成功后调用的回调函数      function onSuccess() {          console.log("playAudio():Audio Success");      }      // 创建Media对象出错后调用的回调函数      function onError(error) {          alert(code:     + error.code    + \n +              message:  + error.message + \n);      }      // 设置音频播放位置      function setAudioPosition(position) {          document.getElementById(audio_position).innerHTML = position     }  </script> </head> <body>     <ahref="#"class="btn large"onclick="playAudio(http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3);">Play Audio</a>     <ahref="#"class="btn large"onclick="pauseAudio();">Pause Playing Audio</a>     <ahref="#"class="btn large"onclick="stopAudio();">Stop Playing Audio</a>     <pid="audio_position"></p> </body> </html> 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.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.

media.release

释放底层操作系统音频资源。
复制media.release();  1.

说明

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

支持的平台

Android iOS

简单的范例

复制// 音频播放器 var my_media = new Media(src, onSuccess, onError);  my_media.play();  my_media.stop();  my_media.release();  1.2.3.4.5.6.

完整的范例

复制<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Media Example</title> <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script> <scripttype="text/javascript"charset="utf-8">     // 等待加载PhoneGap      document.addEventListener("deviceready", onDeviceReady, false);      // PhoneGap加载完毕      function onDeviceReady() {          playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");      }      // 音频播放器      var my_media = null     var mediaTimer = null     // 播放音频      function playAudio(src) {          // 从目标播放文件创建Media对象          my_media = new Media(src, onSuccess, onError);          // 播放音频          my_media.play();          // 每秒更新一次媒体播放到的位置          if (mediaTimer == null) {              mediaTimer = setInterval(function() {                  // 获取媒体播放到的位置                  my_media.getCurrentPosition(                      // 获取成功后调用的回调函数                      function(position) {                          if (position > -1) {                              setAudioPosition((position/1000) + " sec");                          }                      },                      // 发生错误后调用的回调函数                      function(e) {                          console.log("Error getting pos=" + e);                          setAudioPosition("Error: " + e);                      }                  );              }, 1000);          }      }      // 暂停音频播放             function pauseAudio() {          if (my_media) {              my_media.pause();          }      }      // 停止音频播放      function stopAudio() {          if (my_media) {              my_media.stop();          }          clearInterval(mediaTimer);          mediaTimer = null     }      // 创建Media对象成功后调用的回调函数             function onSuccess() {          console.log("playAudio():Audio Success");      }      // 创建Media对象出错后调用的回调函数             function onError(error) {          alert(code:     + error.code    + \n +              message:  + error.message + \n);      }      // 设置音频播放位置      function setAudioPosition(position) {          document.getElementById(audio_position).innerHTML = position     }  </script> </head> <body>     <ahref="#"class="btn large"onclick="playAudio(http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3);">Play Audio</a>     <ahref="#"class="btn large"onclick="pauseAudio();">Pause Playing Audio</a>     <ahref="#"class="btn large"onclick="stopAudio();">Stop Playing Audio</a>     <pid="audio_position"></p> </body> </html> 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.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.

media.startRecord

开始录制一个音频文件。
复制media.startRecord();  1.

说明

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

支持的平台

Android iOS

简单的范例

复制// 录制音频 function recordAudio() {      var src = "myrecording.mp3"     var mediaRec = new Media(src,             // 新建Media对象成功后调用的回调函数            function() {                 console.log("recordAudio():Audio Success");             },             // 新建Media对象出错后调用的回调函数            function(err) {                 console.log("recordAudio():Audio Error: "+ err.code);             }      );      // 录制音频     mediaRec.startRecord();  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.

完整的范例

复制<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Device Properties Example</title> <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script> <scripttype="text/javascript"charset="utf-8">     // 等待加载PhoneGap      document.addEventListener("deviceready", onDeviceReady, false);      // 录制音频      function recordAudio() {          var src = "myrecording.mp3"         var mediaRec = new Media(src, onSuccess, onError);          // 开始录制音频          mediaRec.startRecord();          // 10秒钟后停止录制          var recTime = 0         var recInterval = setInterval(function() {              recTimerecTime = recTime + 1;              setAudioPosition(recTime + " sec");              if (recTime >= 10) {                  clearInterval(recInterval);                  mediaRec.stopRecord();              }          }, 1000);      }      // PhoneGap加载完毕      function onDeviceReady() {          recordAudio();      }      // 创建Media对象成功后调用的回调函数      function onSuccess() {          console.log("recordAudio():Audio Success");      }      // 创建Media对象出错后调用的回调函数      function onError(error) {          alert(code:     + error.code    + \n +                message:  + error.message + \n);      }      // 设置音频播放位置      function setAudioPosition(position) {          document.getElementById(audio_position).innerHTML = position     }  </script> </head> <body>     <ahref="#"class="btn large"onclick="playAudio(http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3);">Play Audio</a>     <ahref="#"class="btn large"onclick="pauseAudio();">Pause Playing Audio</a>     <ahref="#"class="btn large"onclick="stopAudio();">Stop Playing Audio</a>     <pid="audio_position"></p> </body> </html> 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.

iOS 的特异情况

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

media.stop

停止播放一个音频文件。
复制media.stop();  1.

说明

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

支持的平台

Android iOS

简单的范例

复制// 播放音频 function playAudio(url) {  // 播放url指向的音频文件 var my_media = new Media(url,      // 新建Media对象成功后调用的回调函数        function() {             console.log("playAudio():Audio Success");         },         // 新建Media对象出错后调用的回调函数        function(err) {             console.log("playAudio():Audio Error: "+err);      }  );  // 播放音频 my_media.play();  // 10秒钟后暂停播放 setTimeout(function() {         my_media.stop();      }, 10000);          1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.

完整的范例

复制<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Media Example</title> <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script> <scripttype="text/javascript"charset="utf-8">     // 等待加载PhoneGap      document.addEventListener("deviceready", onDeviceReady, false);      // PhoneGap加载完毕      function onDeviceReady() {          playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");      }      // 音频播放器      var my_media = null     var mediaTimer = null     // 播放音频      function playAudio(src) {          // 从目标播放文件创建Media对象          my_media = new Media(src, onSuccess, onError);          // 播放音频          my_media.play();          // 每秒更新一次媒体播放到的位置          if (mediaTimer == null) {              mediaTimer = setInterval(function() {                  // 获取媒体播放到的位置                  my_media.getCurrentPosition(                      // 获取成功后调用的回调函数                      function(position) {                          if (position > -1) {                              setAudioPosition((position/1000) + " sec");                          }                      },                      // 发生错误后调用的回调函数                      function(e) {                          console.log("Error getting pos=" + e);                          setAudioPosition("Error: " + e);                      }                  );              }, 1000);          }      }      // 暂停音频播放      function pauseAudio() {          if (my_media) {              my_media.pause();          }      }      // 停止音频播放             function stopAudio() {          if (my_media) {              my_media.stop();          }          clearInterval(mediaTimer);          mediaTimer = null     }      // 创建Media对象成功后调用的回调函数             function onSuccess() {          console.log("playAudio():Audio Success");      }      // 创建Media对象出错后调用的回调函数      function onError(error) {          alert(code:     + error.code    + \n +                message:  + error.message + \n);      }      // 设置音频播放位置      function setAudioPosition(position) {          document.getElementById(audio_position).innerHTML = position     }  </script> </head> <body>     <ahref="#"class="btn large"onclick="playAudio(http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3);">Play Audio</a>     <ahref="#"class="btn large"onclick="pauseAudio();">Pause Playing Audio</a>     <ahref="#"class="btn large"onclick="stopAudio();">Stop Playing Audio</a>     <pid="audio_position"></p> </body> </html> 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.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.

media.stopRecord

停止录制一个音频文件。
复制media.stopRecord();  1.

说明

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

支持的平台

Android iOS

简单的范例

复制// 录制音频 function recordAudio() {      var src = "myrecording.mp3"     var mediaRec = new Media(src,          // 新建Media对象成功后调用的回调函数         function() {              console.log("recordAudio():Audio Success");          },          // 新建Media对象出错后调用的回调函数         function(err) {              console.log("recordAudio():Audio Error: "+ err.code);          }      );      // 开始录制音频     mediaRec.startRecord();      // 10秒后停止录制     setTimeout(function() {          mediaRec.stopRecord();      }, 10000);  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.

完整的范例

复制<!DOCTYPE html> <html> <head> <title>Device Properties Example</title> <scripttype="text/javascript"charset="utf-8"src="phonegap.js"></script> <scripttype="text/javascript"charset="utf-8">     // 等待加载PhoneGap      document.addEventListener("deviceready", onDeviceReady, false);        // 录制音频      function recordAudio() {          var src = "myrecording.mp3"         var mediaRec = new Media(src, onSuccess, onError);          // 开始录制音频          mediaRec.startRecord();          // 10秒后停止录制          var recTime = 0         var recInterval = setInterval(function() {              recTimerecTime = recTime + 1;              setAudioPosition(recTime + " sec");              if (recTime >= 10) {                  clearInterval(recInterval);                  mediaRec.stopRecord();              }          }, 1000);      }      // PhoneGap加载完毕      function onDeviceReady() {          recordAudio();      }      // 新建Media对象成功后调用的回调函数      function onSuccess() {          console.log("recordAudio():Audio Success");      }      // 新建Media对象出错后调用的回调函数      function onError(error) {          alert(code:     + error.code    + \n +                  message:  + error.message + \n);      }      // 设置音频播放位置      function setAudioPosition(position) {          document.getElementById(audio_position).innerHTML = position     }  </script> </head> <body>     <pid="media">Recording audio...</p>     <pid="audio_position"></p> </body> </html> 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.

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

一个用户指定的回调函数,当媒体函数出现错误的时候被调用。
复制function(error) {      // 处理错误 1.2.3.

参数

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PhoneGap API介绍:File
下一篇:Java时间类库Timer的使用方法与实例详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~