uni-app贡献native.js(NJS)一些代码,将持续更新
uni-app贡献native.js(NJS)一些代码,将持续更新
播放自定义提示音(需离线打包,添加自己的声音资源)
搞这个是因为官方没提供播放系统声音的方法,而使用plus.ios.invoke
又没效果,比如plus.ios.invoke(null, 'AudioServicesPlaySystemSound', 1103);
压根不起作用,官方的plus.audio.createPlayer
感觉又有点麻烦,也不知道能否播放自己添加的声音资源,还需要添加liblibMedia.a
,libopencore-amrnb.a
,libmp3lame.a
这几个库文件,增加包尺寸。
使用方法:
iosPlaySystemSound('my.wav');
window.iosPlaySystemSound = function(filename) {
if (!window.plus) {
return false;
}
iosImport('NSBundle');
iosImport('AVAudioPlayer');
var bundle = NSBundle.mainBundle();
var soundUrl = bundle.URLForResourcewithExtension(filename, null);
var player = new AVAudioPlayer();
player.initWithContentsOfURLerror(soundUrl, null);
if (!player) {
console.log('failed to play: ' + filename);
return false;
}
player.setNumberOfLoops(0); //-1:无限循环
player.setVolume(1);
player.prepareToPlay();
player.play();
}
短震,震动反馈
window.shortVibrate = function() {
if (!window.plus) {
return false;
}
if (plus.os.name == 'iOS') {
iosImport('UIImpactFeedbackGenerator');
var impact = new UIImpactFeedbackGenerator();
impact.prepare();
impact.init(1);
impact.impactOccurred();
} else {
window.plus.device.vibrate(10);
}
}
1 回复