我想知道是否可以使用(JavaScript)YouTube API动态创建一个播放器,该播放器为其音频和视频源使用两个不同的YouTube视频。换句话说,在YouTube API中是否可以隔离一个视频的音频和另一个视频的视频,然后在一个播放器中将它们一起流式传输?
答案 0 :(得分:0)
你可以通过加载和播放两个视频来伪造它,同时将纯音频视频保存在隐藏的DIV中,并使用JS API将视频专用视频静音。
所以我会尝试这样的事情:
<script type="text/javascript" src="swfobject.js"></script>
<div id="videodiv">
The muted video will go here
</div>
<div id="audiodiv">
the hidden video will go here
</div>
<script type="text/javascript">
var audioplayer;
var videoplayer;
var params = { allowScriptAccess: "always" };
var video_atts = { id: "vidonly" };
var audio_atts = { id: "audonly" };
// embed the video-only player
swfobject.embedSWF("http://www.youtube.com/e/VIDEO_ID?enablejsapi=1&playerapiid=ytplayer",
"videodiv", "425", "356", "8", null, null, params, atts);
// embed the audio-only player
swfobject.embedSWF("http://www.youtube.com/e/VIDEO_ID?enablejsapi=1&playerapiid=ytplayer",
"audiodiv", "425", "356", "8", null, null, params, atts);
function onYouTubePlayerReady(playerId) {
audioplayer = document.getElementById("myytplayer");
videoplayer = document.getElementById("myytplayer");
videoplayer.mute();
audioplayer.play();
videoplayer.play();
}
然后诀窍是使用CSS为audiodiv设置样式,使其不会出现在页面上。您可能需要使用它来找到最佳组合,但我猜测将其宽度和高度设置为0或1就足够了。
此外,您可能需要设置onYouTubePlayerReady功能,以确保在开始播放之前两个视频都已完全加载。