BR8*_*R89 5 html5 android cordova phonegap-build
在国外旅行的基本音板上工作.设置一切在浏览器中工作正常,但希望使用PhoneGap Build/GitHub使其可下载,因为单元服务将无法使用.
一切都在桌面浏览器中运行良好,但是一旦安装在Android上,mp3文件就无法播放.我在这里读了一些关于PhoneGap上mp3的不一致的帖子.一些建议使用"媒体"代替.我不知道如何交换它代替我现在的代码.似乎使用javascript而不仅仅是html.http://docs.phonegap.com/en/2.0.0/cordova_media_media.md.html#Media 我正在使用的示例:
<audio id="yes" src="audio/basic/yes.mp3"></audio>
<audio id="no" src="audio/basic/no.mp3"></audio>
<button class="button" onclick="document.getElementById('yes').play()">Yes</button>
<button class="button" onclick="document.getElementById('no').play()">No</button>
Run Code Online (Sandbox Code Playgroud)
适用于浏览器,但不适用于Android.任何人都可以提供一个纠正音频的起点吗?
谢谢-BR
编辑2-9-14
到目前为止没有运气.媒体插件显示正确安装并包含cordova.js.这是我尝试过的.
<!DOCTYPE HTML>
<html>
<head>
<title>Media Example</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,
// success callback
function() {
console.log("playAudio():Audio Success");
},
// error callback
function(err) {
console.log("playAudio():Audio Error: "+err);
});
// Play audio
my_media.play();
}
</script>
</head>
<body>
<a href="#" class="button" onclick="playAudio('/android_asset/www/audio/basic/yes.mp3');">Yes</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
还尝试使用您建议的代码
<!DOCTYPE html>
<html>
<head>
<title>Transactions</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript">
var my_media = null;
var mediaTimer = null;
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function () {
// get my_media position
my_media.getCurrentPosition(
// success callback
function (position) {
if (position > -1) {
setAudioPosition((position) + " sec");
}
},
// error callback
function (e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
});
}, 1000);
}
}
// onSuccess Callback
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
</script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
document.addEventListener("deviceready", function () {
$("#Yes").on("click", function () {
playAudio(audio/basic/yes.mp3);
});
$("#No").on("click", function () {
playAudio(audio/basic/no.mp3);
});
<button class="button" id="Yes">Yes</button>
<button class="button" id="No">No</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
编辑2/10/14
不幸的是仍然没有这样的运 最近的更新如下
<!DOCTYPE html>
<html>
<head>
<title>Transactions</title>
<!-- JavaScript -->
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready", function () {
$("#yes").on("click", function () {
playAudio(/android_asset/www/audio/basic/yes.mp3);
});
$("#no").on("click", function () {
playAudio(/android_asset/www/audio/basic/no.mp3);
});
}, false);
var my_media = null;
var mediaTimer = null;
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
}
// onSuccess Callback
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
</script>
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<button class="button" id="yes">Yes</button>
<button class="button" id="no">No</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我整个星期都在敲我的头,我终于开始Media工作了!有很多陷阱:
根据Geevan的回答,您确实需要<script type="text/javascript" src="phonegap.js"></script>在您的页面上.
步骤1:
您需要使用org.apache.cordova.media版本0.2.9或更高版本(我使用的是0.2.11).在撰写本文时,PhoneGap Build仅支持0.2.8版本.我相信0.2.9的补丁说明可能已经解决了我的问题.
第2步:
版本3.0.0的PhoneGap文档有一个拼写错误,请确保您至少使用3.3.0文档,并确保以下内容中的以下内容是无拼写错误config.xml:
<feature name="Media">
<param name="android-package" value="org.apache.cordova.media.AudioHandler" />
</feature>
Run Code Online (Sandbox Code Playgroud)
(3.0.0文档中缺少"org.apache.cordova.media.AudioHandler"中的"media"一词)
第3步:
如果由于步骤1中描述的问题而被迫使用CLI版本的PhoneGap(非PhoneGap Build),请确保添加所需的插件.这在文档中描述:
> cordova plugin add org.apache.cordova.media
Run Code Online (Sandbox Code Playgroud)
并添加<gap:plugin name="org.apache.cordova.media" />到您的config.xml
第4步:
您需要在所有音频文件路径中添加"/ android_asset/www /".例如:
new Media('/android_asset/www/' + src);
Run Code Online (Sandbox Code Playgroud)
第5步:
设备准备就绪后进行所有音频加载.例如:
document.addEventListener("deviceready", Game.load);
Run Code Online (Sandbox Code Playgroud)
一旦我做了这些更改,我的音频就开始工作了!祝好运!
我认为你应该说“在桌面浏览器中工作得很好”,这更多的是Android默认浏览器中媒体的支持问题,而不是phonegap的问题。
根据此页面,Android浏览器在某些设备上支持mp3,在其他设备上支持ogg。也许您的问题是您尝试在浏览器中仅支持 ogg 媒体的设备上使用 mp3?
使用phonegap媒体插件应该可以解决问题。
文档页面中的完整示例非常清楚。您只需在页面中复制playAudio,onSuccess和onError函数,然后在您想要播放文件时调用 playAudio 即可。
您页面的 html 可能如下所示:
<button class="button" id="btnYes">Yes</button>
<button class="button" id="btnNo">No</button>
Run Code Online (Sandbox Code Playgroud)
和 javasctipt (使用 jquery):
document.addEventListener("deviceready", function () {
$("#btnYes").on("click", function () {
playAudio(audio/basic/yes.mp3);
});
$("#btnNo").on("click", function () {
playAudio(audio/basic/no.mp3);
});
}, false);
var my_media = null;
var mediaTimer = null;
function playAudio(src) {
// Create Media object from src
my_media = new Media(src, onSuccess, onError);
// Play audio
my_media.play();
}
// onSuccess Callback
function onSuccess() {
console.log("playAudio():Audio Success");
}
// onError Callback
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
Run Code Online (Sandbox Code Playgroud)
对 playAudio 的调用也可以直接在 html 中的 onclick 中进行,但我更喜欢仅在 PhoneGap 准备好后才使用 jquery 开始监听点击。
不要忘记包含 cordova.js,如果您使用 Phonegap 3.x,请不要忘记安装 org.apache.cordova.media 插件
路径audio/basic/yes.mp3假定该文件位于 sd 卡根目录下的音频文件夹中。
/android_asset/www/audio/basic/yes.mp3如果音频文件夹位于phonegap www 文件夹中,则使用。
| 归档时间: |
|
| 查看次数: |
20421 次 |
| 最近记录: |