【问题标题】:XAML MediaElement Play() method not working in codeXAML MediaElement Play() 方法在代码中不起作用
【发布时间】:2014-06-16 09:53:06
【问题描述】:

您好,我有一个 Windows Phone 应用,其中包含在 XAML 中定义的 MediaElement 窗口来播放视频文件:

 <MediaElement x:Name="mediaWindow" MediaEnded="mediaWindow_MediaEnded" Stretch="UniformToFill" HorizontalAlignment="Left" Height="225" Margin="15,127,0,0" VerticalAlignment="Top" Width="450" AutoPlay="True"/>

当我在 C# 代码中调用它时,它可以正常运行:?

 mediaWindow.Source = new Uri(loc, UriKind.Relative);

但是发生了一些奇怪的事情,例如当用户导航到新页面时,该页面上的 MediaElement 应该启动并播放音频文件,但我没有。如果我注释掉上面播放视频的代码,则导航到页面上的音频文件可以正常工作。

我试过在 XAML 中使用:?

 <MediaElement x:Name="mediaWindow" MediaEnded="mediaWindow_MediaEnded" Stretch="UniformToFill" HorizontalAlignment="Left" Height="225" Margin="15,127,0,0" VerticalAlignment="Top" Width="450" AutoPlay="False"/>

在 C# 中:

 mediaWindow.Source = new Uri(loc, UriKind.Relative);
 mediaWindow.Play();

但这只是显示黑屏!?

这是我用来播放音频文件的原始页面上的 XAML 中定义的另一个 MediaElement,这可能是问题吗?如果是这样,我该怎么做才能在同一页面上播放音频文件和视频文件?我已经读过我可以将 MediaPlayer 用于音频文件,但我尝试在 c# 代码中定义它,但即使我已经包含它,它也不存在于命名空间中:

 using System.Windows.Media;

这让我发疯了,C# 新手,在这里表示感谢。

非常感谢

【问题讨论】:

    标签: windows-phone mediaelement


    【解决方案1】:

    您是否尝试在XAML 中提供视频的来源?并将 AutoPlay 设为 false。

    <MediaElement x:Name="mediaSimple" 
              Source="Videos/video1.mp4" 
              Stretch="UniformToFill" AutoPlay="False"/>
    

    并在按钮单击事件处理程序中提供mediaSimple.Play()

    【讨论】:

    • 我在 XAML 中定义了一个 MediaElement 源,另一个在运行时在 c# 中定义。我想我使用 1 MediaElement 解决了它,并在运行时 1 为音频设置它们的源,在需要时为视频设置另一个源。我现在可以为两者使用相同的 MediaElement...不确定这个选项是否是一个好主意 ATM,但它现在似乎可以工作!?
    猜你喜欢
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多