我按照一个简单的教程使用Phaser创建游戏,我修改了所有文件和目录,使其与cordova一起使用,以便在Android上运行。问题是在浏览器上播放的声音没有在手机上播放。我读到我应该使用cordova Media API,所以我添加了它,但是我收到了错误" Media未定义"在运行游戏时。 这是我链接到index.html中的js文件的顺序:
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/phaser.min.js"></script>
<script type="text/javascript" src="js/index.js"></script>
我在移相器的预加载功能中创建音频变量,如下所示:
preload: function() {
var audio = new Media('/android_asset/www/img/assets/jump.wav');
}
在跳转功能中:
jump: function() {
window.audio.play();
}
我无法理解问题是什么。
答案 0 :(得分:0)
您需要将cordova插件原生声音与phaser js集成。 1.创建一个cordova项目 2.添加android平台 3.添加插件原生声音
cordova插件添加cordova-plugin-nativeaudio
使用它: 你还需要播放开始和停止循环声音以避免错误 这是我为你捕获的小代码:
在index.html文件中声明所有全局变量和Phaser游戏状态 &#39;
var HomeState;
var LevelState;
var GameOver;
var GameWinner;
var GameState;
var CreditState;
var ShareState;
var SellState;
var app;
enter code here
create app class object
create 3 main method for audio function
playNativeSoundLoop:function(keyid)
{
window.plugins.NativeAudio.loop(keyid);
},
playNativeSound:function(keyid)
{
window.plugins.NativeAudio.play(keyid);
},
stopNativeSound:function(keyid)
{
window.plugins.NativeAudio.stop(keyid);
//window.plugins.NativeAudio.unload(keyid);
}
'
我可以通过下载这个示例游戏来提供您的完整代码,这证明了我提到的内容。这个游戏由phaser js和cordova制作纯粹
https://play.google.com/store/apps/details?id=com.s2team.blindmaze&hl=en