问题描述
问题:我在raspberry-pi上做了一个简单的电子项目,它可以播放音频文件,但是某种程度上无法播放。
我的努力
- 我已经尝试了很多其他音频文件。
- 从我的 raspberry-pi 3b + 设备中删除了node_modules,nodejs和npm,然后重新安装。
- 我还尝试了一些电子版本9.0.0、9.3.1、10.0.0。
- 我试图更新和升级树莓派设备。
- 我使用了一个简单的nodejs文件,并使用了一个播放声音的npm模块并播放了音频文件,是的,但是我在电子应用程序中尝试过的相同代码没有播放。
- 我还通过单击按钮尝试了下面的代码段。
- 我还使用AudioContext和AudioBuffer播放声音,但再次失败。
电子版本: ^ 9.0.0,^ 9.3.1
Node JS版本: 10.19.0
电子版本: 5.8.0
设备:Raspberry Pi 3B +
我的音频代码
var audio = new Audio('beep.mp3');
audio.volume = 1.0;
setInterval(()=>{
audio.play();
},1000);
带有npm模块代码的简单节点JS文件
var player = new require('play-sound')(opts={});
setInterval(()=>{
player.play('beep.mp3',function(err){
console.log('Err :',err);
});
},1000);
说明:上面的代码非常适合在简单的节点js中使用,但不能与电子一起使用。
电子index.js(主要过程)
const { app,BrowserWindow } = require('electron');
function createWindow () {
const win = new BrowserWindow({
width: 800,height: 600,webPreferences: {
nodeIntegration: true
}
})
win.loadFile('index.html');
win.webContents.openDevTools();
}
app.whenReady().then(createWindow)
app.on('window-all-closed',() => {
if (process.platform !== 'darwin') {
app.quit();
}
});
app.on('activate',() => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
电子index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Audio Play</title>
</head>
<body>
<script>
var audio = new Audio('beep.mp3');
audio.volume = 1.0;
setInterval(()=>{
audio.play();
},1000);
</script>
</body>
</html>
结论: 我认为电子没有播放音频文件的权限。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)