PhoneGap API中文帮助文档——Media(媒体)
Media对象提供录制和回放设备上的音频文件的能力。
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
返回返回一个音频文件的当前的位置。
media.getCurrentPosition(mediaSuccess, [mediaError]);
复制代码
参数:
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);
复制代码
完整的范例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Media Example</title>
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="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对象出错后调用的回调函数
func
补充:移动开发 , IOS ,