首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同步播放FLV数据

同步播放FLV数据
EN

Stack Overflow用户
提问于 2013-01-28 12:09:54
回答 2查看 1.1K关注 0票数 5

我只是在研究http://www.broccoliproducts.com/softnotebook/rtmpclient/rtmpclient.php RTMP客户端代码。而且它工作得很好,所以它可以获取数据并在本地保存FLV文件。

code非常简单。所以我的问题是:

1.可以同步播放这种流吗?(好吧,由于缓存而延迟)(我试图通过VLC打开写入文件,但它很忙.)

2.知道如何实现它吗?

!这不是这个项目的任何广告!我只需要在WPF.中创建一些RTMP播放器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-04 22:15:54

一个通用的帖子,直到你提供一些额外的要求。

在Flash内部创建一个按钮,然后实现以下ActionScript

代码语言:javascript
复制
on (press) {
    fscommand("Variable1", "Variable2");
}

然后,在Visual中,您需要添加用于COM ObjectShockwave Flash Object引用。您需要确保embed设置为true。

现在,在Visual中,您应该能够转到Properties并找到fscommand,这将允许您物理地连接Flash的值。

AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent

它将在Flash中收集您的变量。例如,您可以简单地使用e.commande.arg来让收集的项做一些事情。比如..。

代码语言:javascript
复制
lbl_Result.Text="The " + e.args.ToString() + " " + e.command.ToString()+ " was clicked.";

然后将Flash电影的数据从Flash传输到Visual。这很简单,很直截了当。

这将允许您的C#应用程序实际继承和利用您的闪存视频。

需要考虑的事项:

  • 确保您已经将embed设置为true。这就是Flash中所有Path References的物理保存。否则,它可能会调用无效路径。

其他参考帮助:

  1. 在您的项目中打开Solution Explorer
  2. 右击ReferenceAdd Reference
  3. COM Object

这些是可用的对象:

  • Shockwave ActiveX
  • Flash Accessibility
  • Flash Broker
  • Shockwave Flash

以上解决方案将允许您在其本地环境中实际使用Flash,您只需将您希望以这种方式实现到C#中的变量数据或控件传递即可。这样,您实际上可以直接使用RTMP到Flash。您的C#应用程序将只公开Flash。

这是一种通用方法,当您提供一些额外的信息时,我将进行更新,以便更好地帮助您。还有一些库,如,LibRTMP,这些库也可能有所帮助.

正如我所说的,上面的内容是相当通用的;但是它会调用您在Flash视频对象中注意到的任何质量;然后,您的C#可以简单地调整它们如下:

代码语言:javascript
复制
<% MyYoutubeUtils.ShowEmebddedVideo("<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gtNlQodFMi8&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/gtNlQodFMi8&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>") %>

或者..。

代码语言:javascript
复制
public static string ShowEmbeddedVideo(string youtubeObject)
{
    var xdoc = XDocument.Parse(youtubeObject);
    var returnObject = string.Format("<object type=\"{0}\" data=\{1}\"><param name=\"movie\" value=\"{1}\" />",
        xdoc.Root.Element("embed").Attribute("type").Value,
        xdoc.Root.Element("embed").Attribute("src").Value);
    return returnObject;
}

您可以在这里找到线程:Additional Embed Instructions and Details.

这就是如何将Flash放入C#中,也有一些方法可以将C#输出到Actionscript。但是,如果没有更多的细节来说明你想做什么,我真的不能做更多的事情,只有这些一般性的回应。

请记住,这是假设您试图将FLV存储在您的应用程序中,或者将数据从C#聚合到Flash。我需要更多的细节来进一步协助。我不太清楚为什么需要C#,以及您到底想要做什么。

票数 1
EN

Stack Overflow用户

发布于 2013-02-02 02:10:41

如果您有Cygwin,您可以通过tee输送输出。

代码语言:javascript
复制
rtmpdump -i "rtmp://server/app playpath=mp4:foo.mp4" | tee a.flv | vlc -

这将保存输出到一个文件,同时通过VLC播放流。如果您不喜欢安装Cygwin,我有可用的a small version,只有3.2MB。此外,您可能只需找到tee的Windows版本。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14561737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档