在 C# ShockWave 组件上调用 Play() 不会启动 YouTube 视频播放?

Posted

技术标签:

【中文标题】在 C# ShockWave 组件上调用 Play() 不会启动 YouTube 视频播放?【英文标题】:Calling Play() on C# ShockWave component doesn't start YouTube video playback? 【发布时间】:2013-07-14 00:37:27 【问题描述】:

我有一个简单的 WinForms C# 应用程序,它在表单上嵌入了 ShockWave COM 组件。我有一个测试按钮,单击该按钮时,会调用组件上的 Play() 方法。当我单击按钮时,没有任何反应。 YouTube 播放器在 ShockWave 组件中清晰可见,视频静止,播放器镶边在框架中,上面有一个大的播放按钮。但它没有开始播放。

示例代码:

private void button1_Click(object sender, EventArgs e)

    axShockwaveFlash1.Play();

有谁知道如何解决这个问题?我想知道这是否是因为 ShockWave 组件可能需要“需要点击播放”或在 Play() 方法起作用之前清除其他一些注册表/系统设置?如果碰巧是这种情况,那么我该如何以编程方式执行此操作,以便新安装能够完美运行,而不会让用户遇到某种预先设置的麻烦?

【问题讨论】:

【参考方案1】:

对于 Youtube 视频AxShockwaveFlash 对象Play() 方法不起作用,但是,有一个很好的解决方法。

秘诀是将?autoplay=1 添加到包含您要播放的视频的 URL 的末尾。

这样的东西会提供预期的效果:

private void button1_Click(object sender, EventArgs e)

    string path = @"http://www.youtube.com/v/Q-h4ulFK2Ek?autoplay=1";
    axShockwaveFlash1.Load(0, path);

【讨论】:

以上是关于在 C# ShockWave 组件上调用 Play() 不会启动 YouTube 视频播放?的主要内容,如果未能解决你的问题,请参考以下文章

如何在活动设计器中启用 Shockwave Flash 对象?

在 MPMoviePlayerController 上调用 play 后,电影播放有一些延迟

如何使用 React Ref 调用 video.play()?

尽管从点击事件中调用,Safari 仍会阻止视频上的 play()

VC6.0和VS2005:C++和C#编写调用COM组件

AudioTrack:在未初始化的 AudioTrack 上调用 play()