一款YouTube播放器,分别使用2个不同的YouTube视频播放音频和视频

时间:2011-08-11 14:03:20

标签: javascript api flash youtube youtube-api

我想知道是否可以使用(JavaScript)YouTube API动态创建一个播放器,该播放器为其音频和视频源使用两个不同的YouTube视频。换句话说,在YouTube API中是否可以隔离一个视频的音频和另一个视频的视频,然后在一个播放器中将它们一起流式传输?

1 个答案:

答案 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功能,以确保在开始播放之前两个视频都已完全加载。

相关问题