`

PhoneGap API帮助文档翻译—Media(媒体)

阅读更多

文章源自:http://blog.csdn.net/phonegapcn/article/details/6702883

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对象出错后调用的回调函数
function onError(error) {
	alert('code: '    + error.code    + '\n' + 
		'message: ' + error.message + '\n');
}

// 设置音频播放位置
function setAudioPosition(position) {
	document.getElementById('audio_position').innerHTML = position;
}

</script>
</head>
<body>
	<a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
	<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
	<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
	<p id="audio_position"></p>
</body>
</html>

 media.getDuration :返回音频文件的时间长度。

 

说明: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);

 完整的范例:

 

 

<!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对象出错后调用的回调函数
	function onError(error) {
		alert('code: '    + error.code    + '\n' + 
			'message: ' + error.message + '\n');
	}
	
	// 设置音频播放位置
	function setAudioPosition(position) {
		document.getElementById('audio_position').innerHTML = position;
	}

</script>
</head>
<body>
	<a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
	<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
	<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
	<p id="audio_position"></p>
</body>
</html>

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

 

说明: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();
}

 完整的范例:

 

 

<!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对象出错后调用的回调函数
	function onError(error) {
		alert('code: '    + error.code    + '\n' + 
			  'message: ' + error.message + '\n');
	}
	
	// 设置音频播放位置
	function setAudioPosition(position) {
		document.getElementById('audio_position').innerHTML = position;
	}

</script>
</head>
<body>
	<a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
	<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
	<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
	<p id="audio_position"></p>
</body>
</html>

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

 

说明: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);        
}

 完整的范例:

 

 

<!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对象出错后调用的回调函数
	function onError(error) {
		alert('code: '    + error.code    + '\n' + 
			'message: ' + error.message + '\n');
	}
	
	// 设置音频播放位置 
	function setAudioPosition(position) {
		document.getElementById('audio_position').innerHTML = position;
	}

</script>
</head>
<body>
	<a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
	<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
	<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
	<p id="audio_position"></p>
</body>
</html>

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

 

说明: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();

 完整的范例:

<!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对象出错后调用的回调函数       
	function onError(error) {
		alert('code: '    + error.code    + '\n' + 
			'message: ' + error.message + '\n');
	}
	
	// 设置音频播放位置
	function setAudioPosition(position) {
		document.getElementById('audio_position').innerHTML = position;
	}

</script>
</head>
<body>
	<a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
	<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
	<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
	<p id="audio_position"></p>
</body>
</html>

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

说明: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();
}

 完整的范例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>	
<title>Device Properties 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); 
	
	// 录制音频
	function recordAudio() {
		var src = "myrecording.mp3";
		var mediaRec = new Media(src, onSuccess, onError);
	
		// 开始录制音频
		mediaRec.startRecord();
	
		// 10秒钟后停止录制
		var recTime = 0;
		var recInterval = setInterval(function() {
			recTime = 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>
	<a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
	<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
	<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
	<p id="audio_position"></p>
</body>
</html>

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

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

说明: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);        
}

 完整的范例:

<!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对象出错后调用的回调函数
	function onError(error) {
		alert('code: '    + error.code    + '\n' + 
			  'message: ' + error.message + '\n');
	}
	
	// 设置音频播放位置
	function setAudioPosition(position) {
		document.getElementById('audio_position').innerHTML = position;
	}

</script>
</head>
<body>
	<a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
	<a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
	<a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
	<p id="audio_position"></p>
</body>
</html>

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

说明: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); 
}

 完整的范例:

<!DOCTYPE html>
<html>
<head>	
<title>Device Properties 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);  
	
	// 录制音频 
	function recordAudio() { 
		var src = "myrecording.mp3"; 
		var mediaRec = new Media(src, onSuccess, onError); 
	
		// 开始录制音频 
		mediaRec.startRecord(); 
	
		// 10秒后停止录制
		var recTime = 0; 
		var recInterval = setInterval(function() { 
			recTime = 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>
	<p id="media">Recording audio...</p>
	<p id="audio_position"></p>
</body>
</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回调函数传递给用户。

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    PhoneGap,API帮助文档.zip

    这个"PhoneGap API帮助文档.zip"压缩包显然包含了关于如何使用PhoneGap API的详细指南,对于开发者来说是非常宝贵的资源。下面我们将深入探讨PhoneGap API中的关键组件及其功能。 1. **加速度计(Accelerometer)**...

    PhoneGap中文API帮助文档

    网上的phonegap中文帮助文档尚少,翻译也不太好,在此收集了一些翻译优秀的文章,并制作成chm的帮助文档,以帮助各位学习,此文档包含了phonegap的主要使用功能,并提供了完整示例

    PhoneGap,API帮助文档翻译整理10-Media_(媒体)

    在本篇文档中,我们关注的是 PhoneGap 的 Media API,它提供了对移动设备媒体(如音频)的访问和控制能力。 Media API 提供了对音频文件的操作,包括播放、暂停、停止以及获取当前播放位置等功能。以下是对 Media ...

    PhoneGap,API帮助文档翻译整理4-Compass(指南针)

    标题:PhoneGap,API帮助文档翻译整理4-Compass(指南针) 描述:本文档将深入探讨PhoneGap中Compass API的功能与应用,包括如何获取设备的指南针方向、监听指南针变化以及如何处理相关事件。 ### 一、Compass API...

    PhoneGap,API帮助文档翻译整理6-Contacts(通讯录)

    ### PhoneGap Contacts API详解 #### 一、简介 在移动应用开发中,有时我们需要访问用户的通讯录以便于实现社交功能或其他交互式应用需求。PhoneGap(现称Cordova)为开发者提供了一套丰富的API,使得跨平台应用...

    PhoneGap,API帮助文档翻译整理7-Events_(消息)

    PhoneGap API 提供了一系列的事件,这些事件可以帮助开发者响应移动设备上的特定操作,从而实现更丰富的用户体验。本文将详细介绍 PhoneGap 中的事件类型及其使用方法。 1. **backbutton**:当用户在 Android 设备...

    Phonegap API (中文版)

    最新的Phonegap api 中文翻译版。让你快速入门。

    PhoneGap,API帮助文档翻译整理5-Device(设备)

    知识点:PhoneGap设备API及其应用 一、PhoneGap设备API概览 PhoneGap是一个开源框架,允许开发者使用HTML、CSS和JavaScript开发跨平台移动应用程序。设备API是PhoneGap提供的核心功能之一,它允许开发者访问设备的...

    PhoneGap,API帮助文档翻译整理3-Capture(捕捉)

    ### PhoneGap Capture API详解 #### 一、简介 **PhoneGap**是一款开源框架,允许开发者使用HTML、CSS和JavaScript等Web技术开发跨平台移动应用程序。本文档主要介绍**PhoneGap**中的**Capture API**,该API提供了...

    PhoneGap,API帮助文档翻译整理2-Camera(相机)

    知识点:PhoneGap的Camera API详解 一、PhoneGap与Camera API简介 PhoneGap是一个开源框架,允许开发者使用HTML,CSS和JavaScript开发跨平台移动应用程序。它通过提供一系列API来访问设备的功能,如摄像头、GPS、...

    PhoneGap,API帮助文档翻译整理8-File_(文件)

    在本篇文档中,我们将重点关注与“文件”相关的 API,包括 `File`、`DirectoryEntry`、`FileReader` 等。 **File API** 是一组用于读取、写入和管理设备文件系统层级结构的接口。这些接口遵循 W3C 的《文件系统 API...

    PhoneGap,API帮助文档翻译整理6-Contacts(通讯录).pdf

    在本文中,我们将围绕PhoneGap框架的API文档进行探讨,特别是在处理移动设备上的通讯录(Contacts)数据时所使用的一系列方法。根据提供的文件信息,我们将会详细解释如何使用PhoneGap API来创建和查找通讯录中的...

    PhoneGap,API帮助文档翻译整理9-Geolocation_(定位)

    // PhoneGap 激活时执行 function onDeviceReady() { // 不使用超时,因为不是必需的 // 如果在设备准备好之前调用了 getCurrentPosition,将会失败 navigator.geolocation.getCurrentPosition(onSuccess, on...

    PhoneGap的API组件及使用方法

    3. **媒体** (Media): 这个API允许录制和播放音频文件,提供了`Media`对象用于控制音频操作。 4. **地理定位** (Geolocation): `navigator.geolocation`接口提供了获取设备当前位置的能力,支持GPS、Wi-Fi和移动...

    PhoneGap,API帮助文档翻译整理1-Accelerometer(加速度计)

    ### PhoneGap中的Accelerometer(加速度计)API详解 #### 一、简介 加速度计是一种常见的硬件传感器,被广泛应用于智能手机和平板电脑等移动设备上。它主要用于测量设备在三维空间中的线性加速度,通常包括三个轴...

    phonegap api中文手册

    本手册为PhoneGap API的中文版指南,旨在为开发者提供全面、详细的API使用指导,帮助其利用PhoneGap框架开发跨平台移动应用。PhoneGap是一款基于HTML、CSS和JavaScript的技术栈,允许开发者构建适用于多个移动操作...

    PhoneGap API之事件处理.

    6. **媒体事件**:使用`Media`对象处理音频播放时,可以监听`play`、`pause`、`stop`和`error`等事件。这些事件允许开发者实现更复杂的音频控制逻辑。 7. **通知和提示事件**:`Notification`对象提供了多种用户...

    Phonegap API中文版

    总的来说,PhoneGap API中文版对于想要使用Web技术开发跨平台移动应用的开发者来说,是一个重要的学习和参考资源,可以帮助他们更高效地理解和利用PhoneGap的功能。通过深入学习和实践,开发者可以创建出功能丰富的...

    Phonegap API Demo(New)

    此API演示项目是为了帮助开发者更直观地理解如何在实际应用中使用PhoneGap的各种功能。 在这个压缩包中,你将找到一系列的apidemo,每个代表了一个特定的PhoneGap API。这些API包括但不限于: 1. **设备API**:...

Global site tag (gtag.js) - Google Analytics