在Windows窗体中嵌入flv(flash)播放器

时间:2008-09-04 11:38:47

标签: c# winforms flash flv embedded-flashplayer

我正在尝试使用Windows窗体应用程序中的flv Flash播放器from here。我目前有1 .flv文件没有问题,但我真的需要能够播放多个文件。有没有人有使用此控件提供的播放列表的经验,还是有更好的方法来做到这一点?

4 个答案:

答案 0 :(得分:4)

我会非常犹豫将WebBrowser控件置于您的软件和flv之间,因为您将失去对flv的所有控制权,并且不会获得有关其状态的任何有意义的通知。缺乏紧密集成将导致非常差的用户体验。博文here有关于通过COM嵌入Flash的说明。

答案 1 :(得分:1)

你能让控件在网页/浏览器中以你想要的方式运行吗?如果是(问题是winforms,我只是将它嵌入浏览器控件中。如果不是,我会直接作为创建者。

答案 2 :(得分:0)

嗯我也遇到了同样的问题。问题是loadmovie方法似乎没有清除最后一部电影。到目前为止,我还没有找到任何技术将新电影加载到同一个Flash播放器中。

答案 3 :(得分:0)

我发现自己需要做同样的事情,因为没有明确的解决方案,我想我会提供我的。这就是我最终做的事情:

//Load JWPlayer swf
axShockwaveFlash1.FlashVars = "autostart=true";
axShockwaveFlash1.ScaleMode = 0;
axShockwaveFlash1.LoadMovie(0, Directory.GetCurrentDirectory() + @"\JWPlayer\player.swf");
axShockwaveFlash1.Play();

//Play new flv
axShockwaveFlash1.CallFunction("<invoke name=\"sendEvent\" returntype=\"xml\">" + 
    "<arguments><string>load</string><string>" +
    @"C:\FLVFiles\Example.flv" +
    "</string></arguments></invoke>");

我解决这个问题的主要参考是:(查看上一篇文章) http://www.longtailvideo.com/support/forums/jw-player/bug-reports/8687/how-to-call-sendevent-from-c

我之所以提到这一点,主要是因为可以调用人们可能感兴趣的其他事件的链接。