CommunityToolkit.Maui.MediaElement 可以在隐藏代码中使用吗?

Wenyan Zhang (Shanghai Wicresoft Co,.Ltd.) 26,751 信誉分 Microsoft 供应商
2024-04-16T07:15:10.2233333+00:00

我可以使用 CommunityToolkit.Maui.MediaElement 在 XAML 中播放音频文件。我知道这个控件也可以播放视频,但我的需求只是在后面的代码中播放提示音频。我尝试了以下方法,但没有任何反应。


MediaElement mediaPlayer;
 
mediaPlayer ??= new MediaElement()
{
	Speed = 1,
	Source = MediaSource.FromResource("Alert.mp3"),   /* Resouces\Raw\Alert.mp3 */
	ShouldAutoPlay = false,
	ShouldShowPlaybackControls = false,
	ShouldMute = false,
	Volume = 0.95
};
 
mediaPlayer.Play();

如果将 mediaPlayer 放在 XAML 中,则一切按预期工作。 MediaElement 似乎不喜欢在隐藏代码中创建的对象。

 

我是否错误地使用它?有解决方法吗?

 

此问题整理于:https://learn.microsoft.com/en-us/answers/questions/1192575/can-the-communitytoolkit-maui-mediaelement-be-used

.NET MAUI
.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
41 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Yonglun Liu (Shanghai Wicresoft Co,.Ltd.) 36,231 信誉分 Microsoft 供应商
    2024-04-16T07:23:38.88+00:00

    你好,

    MediaElement 是一个控件,因此必须位于布局中才能正常工作。

    如果不想在 xaml 中声明 MediaElement,可以参考以下代码:

    //in xaml
    <VerticalStackLayout x:Name="myStack"
    	...
    </VerticalStackLayout>
     
    // code-behind
    MediaElement mediaPlayer;
    mediaPlayer = new MediaElement()
    {
        Speed = 1,
                IsVisible = false,
                Source = MediaSource.FromResource("alert.mp3"),   /* Resouces\Raw\Alert.mp3 */
                ShouldAutoPlay = false,
                ShouldShowPlaybackControls = false,
                ShouldMute = false,
                Volume = 0.95
            };
    myStack.Add(mediaPlayer);
    mediaPlayer.Play();
    myStack.Remove(mediaPlayer);
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助