C# 使用Javascript更改ActiveX视频播放器源代码

C# 使用Javascript更改ActiveX视频播放器源代码,c#,javascript,video,activex,C#,Javascript,Video,Activex,以下是我在网页中嵌入的ActiveX控件: <object id="MediaPlayer1" CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/ en/nsmp2inf.cab#Version=5,1,52,701" standby="Loading Mi

以下是我在网页中嵌入的ActiveX控件:

<object id="MediaPlayer1" 
        CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" 
        codebase="http://activex.microsoft.com/activex/controls/mplayer/ en/nsmp2inf.cab#Version=5,1,52,701"
        standby="Loading Microsoft Windows® Media Player components..."
        TYPE="application/x-oleobject"
        width="280"
        height="256">
<param name="fileName" value="/media/paul.avi">
<param name="animationatStart" value="true">
<param name="transparentatStart" value="true">
<param name="autoStart" value="false">
<param name="showControls" value="true">
<param name="Volume" value="-20">
<embed type="application/x-mplayer2"
        pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
        src="/media/paul.avi"
        name="MediaPlayer1"
        width=280
        height=256 
        autostart=1
        showcontrols=1
        volume=-20>
</object>

我很确定
document.getElementsByTagName('video')[0]
抓住了页面中的第一个
标记,但是如果我试图在
标记中找到一些东西,它会不会与
document.getElementsByTagName('param')[0]的内容一致
和类似的
document.getElementsByTagName('embed')[0]

我对以下内容做了一些实验,似乎很有效;只需向嵌入标记添加一个id,查找它,然后更改所需的任何值:

<html><head></head><body>
<object id="MediaPlayer1" 
        CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" 
        codebase="http://activex.microsoft.com/activex/controls/mplayer/ 
                  en/nsmp2inf.cab#Version=5,1,52,701"
        standby="Loading Microsoft Windows® Media Player components..."
        TYPE="application/x-oleobject"
        width="280"
        height="256">
<param name="fileName" value="/media/paul.avi">
<param name="animationatStart" value="true">
<param name="transparentatStart" value="true">
<param name="autoStart" value="false">
<param name="showControls" value="true">
<param name="Volume" value="-20">
<embed type="application/x-mplayer2"
      id="myEmbededTag"
      pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
      src="/media/paul.avi"
      name="MediaPlayer1"
      width=280
      height=256 
      autostart=1
      showcontrols=1
      volume=-20>
</object>

<script type="text/javascript">
    // Look up the ID, and get a ref. to it:
    var element = document.getElementById('myEmbededTag');
    alert(element.src);
    element.src = 'http://example.com/yourvideo.avi';
    alert(element.src);
</script>
</body>
</html>

//查找ID,并获取其参考号:
var element=document.getElementById('myEmbededTag');
警报(element.src);
element.src=http://example.com/yourvideo.avi';
警报(element.src);
针对以下febreezey的评论更新:

这在某种程度上取决于你想什么时候做这件事;假设您只想在页面完成加载后设置源代码并启动视频,那么您可以执行以下操作(将前面的JavaScript部分替换为以下内容):


window.onload=函数(){
var element=document.getElementById('myEmbededTag');
警报(element.src);
element.src=http://www.rabiner.com/files/David_Rabiner.wmv';
警报(element.src);
}
(注意,我不知道这个示例视频是关于什么的,我只是随机选取了一些示例视频…)

最终更新:

我不确定这是否是解决问题的理想/完美方法(感觉有点粗糙),但您可能可以这样做:

<a href="#" 
 onclick="javascript:SetVid('http://www.rabiner.com/files/David_Rabiner.wmv');">
Click to set value
</a>

<script type="text/javascript">
    var SetVid = function(videoUrl){
        var element = document.getElementById('myEmbededTag');
        alert(element.src);
        element.src = videoUrl;
        alert(element.src);
    }
</script>

var SetVid=函数(videoUrl){
var element=document.getElementById('myEmbededTag');
警报(element.src);
element.src=视频URL;
警报(element.src);
}

好的,它成功地更改了
的src,但是有没有办法将视频加载到播放器中并开始使用相同的javascript播放?前面,我刚刚检查了您是否可以访问“src”的值。现在我对脚本做了一点修改(参见上面的更新),以确保它确实加载了一个视频,并且以某种方式工作。希望你能适应你的需要。好的,这对我很有用。现在让我们假设我有一个GridView的值和链接到其他视频。我点击其中一个,它运行上面的javascript代码并重新加载页面,现在播放最近选择的视频。为了实现这一点,这里有很多需要改变的地方吗?再次更新:这将重新加载页面,并更新视频源。PS,如果您在同一页面上有多个视频(即多个嵌入标签),您可以将嵌入标签的ID作为第二个参数传递给函数。好的,我不知道是否只有我,但这会重新加载页面,而不是播放器。当我启动页面时,我会播放默认的Paul.avi,但是当我点击另一个视频时,唯一会改变的是在最后有一个#的URL。我需要重新加载视频并开始播放新的视频。
<script type="text/javascript">
    window.onload = function(){
        var element = document.getElementById('myEmbededTag');
        alert(element.src);
        element.src = 'http://www.rabiner.com/files/David_Rabiner.wmv';
        alert(element.src);
    }
</script>
<a href="#" 
 onclick="javascript:SetVid('http://www.rabiner.com/files/David_Rabiner.wmv');">
Click to set value
</a>

<script type="text/javascript">
    var SetVid = function(videoUrl){
        var element = document.getElementById('myEmbededTag');
        alert(element.src);
        element.src = videoUrl;
        alert(element.src);
    }
</script>