我想在Android和iOS设备上为我的基于Vaadin的网站播放通知声音。通知声音在桌面上完美运行。如何让它在移动设备上运行。
我正在使用"音频"组件,没有显示控件,只是"播放"它在我需要的时候。这是一个非常短的声音和小文件。
编辑6/1/2017(我目前的实施): 首先,在我的非常简单的形式的构造函数中:
barcode.setInputPrompt("Barcode");
barcode.setCaption("Barcode");
barcode.setMaxLength(22);
barcode.setNullRepresentation("");
barcode.setRequired(true);
submit = new Button("Submit");
addComponents(barcode, facilityId, submit );
submit.setStyleName(ValoTheme.BUTTON_PRIMARY);
submit.setClickShortcut(KeyCode.ENTER);
submit.addClickListener(e->this.handleSubmit());
goodScan = new Audio(null, new ThemeResource( "sounds/good-scan.mp3"));
goodScan.setAutoplay(false);
goodScan.setShowControls(false);
badScan = new Audio(null, new ThemeResource( "sounds/bad-scan.mp3"));
badScan.setAutoplay(false);
badScan.setShowControls(false);
addComponents( goodScan, badScan );
请注意,我将自动播放和控件关闭,因此无法显示在屏幕上。实际上,至少在我的情况下," setShowContrtols(false)"似乎隐藏着什么。后来,在我的提交方法中,我有这个(" ..."用于不相关的代码):
private void submit() {
try {
...
barcode.setValue(null);
barcode.focus();
goodScan.play();
} catch (WMSException e) {
...
Notification.show("Consumption Scan Error", message, Type.ERROR_MESSAGE);
barcode.focus();
badScan.play();
}
...
}
上述内容适用于桌面设备,但在Android和iOS设备上无法始终如一地工作(如果有的话)。自从原帖以来我没有重新考虑过这个问题,因为我自己没有想法,而且我提出的问题也没有新的东西。
所有这一切,上面的代码应该适用于Vaadin 8(敲木头),这对你有帮助,Basil。