2017-03-10 96 views
1

我试图在装有Electron的窗口中播放视频(mp4)。 奇怪的是:它只用一个视频就可以正常工作,其他视频则显示黑屏。所有视频的唯一区别是它们的宽度和高度(这是否重要?)。另外,在浏览器窗口中,所有视频都可以播放。电子视频标签

下面是在电子加载Windows代码:

let mainWindow; 
let playerWindow; 


app.on('window-all-closed', function() { 
    if (process.platform != 'darwin') { 
    app.quit(); 
    } 
}); 

app.on('ready', function() { 
    mainWindow = new BrowserWindow({ 
    title: 'MasterGameApp', 
    x: 910, 
    y: 500, 
    width: 800, 
    height: 460, 
    show: true, 
    resizable: false, 
    transparent: false 
}); 

playerWindow = new BrowserWindow({ 
    title: 'playerView', 
    x: 2250, 
    y: 50, 
    width: 1005, 
    height: 540, 
    show: true, 
    transparent: false, 
    fullscreen : true 
}); 

mainWindow.loadURL('http://localhost:8889'); 
mainWindow.setMenuBarVisibility(false); 
mainWindow.setAutoHideMenuBar(true); 
playerWindow.loadUrl('http://localhost:8889/playerView'); 
playerWindow.setMenuBarVisibility(false); 
playerWindow.setAutoHideMenuBar(true); 

mainWindow.on('closed', function() { 
    playerWindow.close(); 
    playerWindow = null; 
    mainWindow = null; 
}); 
}); 

的视频URL只是给视频标签的JS脚本中像这样$('#someDiv').append('<video id=\'backgroundvid\' autoplay><source src=\''+ content +'\' type=\'video/mp4\'></video>');

我不明白为什么浏览器可以播放每个视频,但电子窗口不能...提前致谢

回答

0

嗯。我刚刚看到视频标记的URL属性的开头不包含引号。 你有什么:

$('#someDiv').append('<video id=\'backgroundvid\' autoplay><source src=\''+ content +'\' type=\'video/mp4\'></video>'); 

你应该有什么:

$('#someDiv').append('<video id=\'backgroundvid\' autoplay><source src=&quot;\''+ content +'\' type=\'video/mp4\'&quot;></video>'); 

您是否尝试过改变吗? 保持点亮;继续做电子。我非常喜欢它,并且可以看到其未来桌面应用程序的潜力。

另外,我不确定你的CORS设置是什么或者什么,但是如果它试图在本地加载视频,它可能不会让你。

+0

谢谢你的回答,但这不是问题,逗号没问题(只是做了一些测试),这段代码对于一个视频(以及浏览器中的所有视频)效果很好,但显示黑屏与其他视频(在电子窗口)。 我同意,Electron很酷,也很容易开始 – LongDuZboub

+0

好的,所以我只是转换文件适当的高度和宽度,并做了这项工作...... – LongDuZboub

+0

@LongDuZboub如果修复它,回答,然后将其标记为正确? (如果你已经弄清楚为什么有高度/宽度限制,那么也可以在你的答案中输入:) –