【问题标题】:How to play swf file in silverlight?如何在 Silverlight 中播放 swf 文件?
【发布时间】:2013-01-18 04:27:09
【问题描述】:

我想在 silverlight5 页面中播放 .swf。我正在使用 ListBox 控件或图像控件 或任何想法在 Silvarlight 中播放 swf 文件

<Image Grid.Row="0" Name="bottom_video" Height="80" Source="{Binding VodeoUrl,Mode=OneWay}" Margin="0,20,0,0" /> 

【问题讨论】:

  • 如果有任何控件可以在 Silvarlight5 中播放 swf 文件,那么请给我建议
  • 是的,我想要在 Silvarlight 5 中播放 swf 文件的正确解决方案
  • 您的 swf 文件有什么特点?他们使用什么功能?视频流?动态加载内容?他们使用 ActionScript 吗?您有权访问 .flv 文件吗?

标签: c# silverlight silverlight-4.0 silverlight-5.0 silverlight-toolkit


【解决方案1】:

您也许可以在每台 Windows 机器上使用 Flash 播放器本身自动安装的 Flash ActiveX 控件,但如果它可以工作,它仍然会带来很多限制,如 here 所述,另一个问题是"Airspace" problem.

另一种方法是使用 this 将 SWF 转换为 XAML。但是我发现了很多无法转换的swf文件。特别是在涉及大量 ActionScript 或动态加载内容的情况下。

【讨论】:

    【解决方案2】:

    您可以在下面的代码中看到如何在 Silverlight 上使用 iframe:

    <Grid x:Name="LayoutRoot">
    
            <HyperlinkButton Content="HyperlinkButton" Height="23" HorizontalAlignment="Left" Margin="44,20,0,0" Name="hyperlinkButton1" VerticalAlignment="Top" Width="100" TargetName="" Click="hyperlinkButton1_Click"  />
    
        </Grid>
    
    
    
    code behind:
    
    
    
    private void hyperlinkButton1_Click(object sender, RoutedEventArgs e)        { 
    
    
    
    HtmlDocument _document = HtmlPage.Document;
    
    
                HtmlElement iframe = _document.CreateElement("IFRAME");
                iframe.SetAttribute("src", "http://localhost:52878/TestForm.aspx");
    
    
                iframe.SetStyleAttribute("position", "absolute");
                iframe.SetStyleAttribute("top", "100px");
                iframe.SetStyleAttribute("left", "200px");
                HtmlElement body = (HtmlElement)_document.GetElementsByTagName("BODY")[0];
                body.AppendChild(iframe);
    
    HtmlDocument _document = HtmlPage.Document;
    
                HtmlElement iframe = _document.CreateElement("IFRAME");
    
                iframe.SetAttribute("src", "http://localhost:52878/TestForm.aspx");
    
                iframe.SetStyleAttribute("position", "absolute");
    
                iframe.SetStyleAttribute("top", "100px");
    
                iframe.SetStyleAttribute("left", "200px");
    
                HtmlElement body = (HtmlElement)_document.GetElementsByTagName("BODY")[0];
    
                body.AppendChild(iframe);
    
    }
    

    【讨论】:

      【解决方案3】:

      我已经找到了如何在 Silverlight 5 中播放 swf 文件的答案

       <WebBrowser Grid.Row="1" VerticalAlignment="Top" Source="{Binding VodeoUrl,Mode=OneWay}" Height="280" Width="280"/>
      

      【讨论】:

      • 为了完整起见,应该补充一点,这是我在回答这个问题时提到的限制(stackoverflow.com/a/14495506/4227
      • 你没有因为这个问题给前任,所以我会给你投票但我接受了
      【解决方案4】:

      这是不可能的。 Silverlight 不播放 swf 文件。如果它只是一个没有任何交互的视频文件,您也许可以将视频转换为 Silverlight 可以播放的内容。以下是有关支持的格式的一些信息:
      http://msdn.microsoft.com/en-us/library/cc189080%28v=vs.95%29.aspx

      【讨论】:

      • 任何想法将 swf 文件转换为等...格式化 Tharoug C# 代码?
      • 对不起,我不认为这是可能的。除非您可以找到具有可以进行转换的 API 的 3rd 方组件。但我认为这样的组件不太可能存在。
      猜你喜欢
      • 2016-12-31
      • 1970-01-01
      • 2012-01-26
      • 2013-04-24
      • 1970-01-01
      • 2010-12-27
      • 2021-09-15
      • 2013-07-07
      • 1970-01-01
      相关资源
      最近更新 更多