我正在处理两个相关的项目,一个网页和一个基于Electron的应用程序,它们都需要在嵌入式iframe中播放Youtube视频。在网站上一切都运行得很完美,
var newUrl = 'http://www.youtube.com/embed/' + $scope.youtube_parser(video.url);
$scope.videoURL = $sce.trustAsResourceUrl(newUrl + '?enablejsapi=1&showinfo=0&rel=0');
$scope.setYTPlayer();
$scope.setYTPlayer = function(){
$scope.player;
$scope.player = new YT.Player('player', {
height: '360',
width: '640',
videoId: $scope.videoSelected,
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
<iframe id="player" frameborder="0" allowfullscreen ng-src="{{videoURL}}" style="width: 100%;height: 100%;"></iframe>
但在Electron应用中,许多视频无法播放,播放器上会显示消息:"视频不可用"。
var youtubeId = $scope.getYoutubeId(video.url)
$scope.currentVideo = $sce.trustAsResourceUrl(
'https://www.youtube.com/embed/' + youtubeId + '?rel=0'
)
<iframe width="100%" height="442" ng-src="{{ currentVideo }}" frameborder="0" allowfullscreen></iframe>
同样的链接和方法,在页面上复制没有任何问题。仅用 iframe,使用 api,更改播放参数问题仍然存在。问题是,是否有 YouTube 政策禁止在某些地方播放视频?或者可能是什么错误?
Electron 版本:v3.0.3
非常感谢,如果表达不清楚请多多包涵。