gpt4 book ai didi

c# - Xamarin 媒体管理器和静态实例化有问题

转载 作者:行者123 更新时间:2023-11-30 23:05:30 25 4
gpt4 key购买 nike

我想将 Xamarin MediaManager 用于网络电视项目。为了启用全屏,我为此打开了一个新页面。但是,当我返回 MainPage 时,媒体播放器对象被释放。

为了防止处置,我想在每次出现屏幕时实例化该对象。但是,在MediaManager 插件的源代码中,其中一个方法被定义为静态的。因此,我在实现我的目的时遇到了一些问题。

我是 C# 新手,我想了解 OOP 逻辑。

using System;
using Plugin.MediaManager;
using Plugin.MediaManager.Abstractions.Enums;
using Plugin.MediaManager.Forms;
using Xamarin.Forms;

namespace VideoPlayerApp
{
public partial class MainPage : ContentPage
{
CrossMediaManager Video;
public MainPage()
{
InitializeComponent();

Video = new CrossMediaManager();
}


private async void PlayStop_Clicked(object sender, EventArgs e)
{
if (PlayPauseButton.Text == "Play")
{
await Video.Current.Play(VideoEntry.Text, MediaFileType.Video);

PlayPauseButton.Text = "Stop";
}

else if (PlayPauseButton.Text == "Stop")
{
await Video.Current.Pause();

PlayPauseButton.Text = "Play";
}
}

private async void FullScreen_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new FullScreen());
}

}
}

在上面的代码中,问题出在以下几行:

await Video.Current.Play(VideoEntry.Text, MediaFileType.Video);

和:

await Video.Current.Pause();

我得到的错误是:

Error CS0176 Member 'CrossMediaManager.Current' cannot be accessed with an instance reference; qualify it with a type name instead

非常感谢您的帮助和建议。

最佳答案

您不需要新建 CrossMediaManager 的实例。而是使用这个:

await CrossMediaManager.Current.Play(VideoEntry.Text, MediaFileType.Video);

和:

await CrossMediaManager.Current.Pause();

查看更多示例代码 here .

关于c# - Xamarin 媒体管理器和静态实例化有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48748339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com