Xamarin.forms 依赖服务和mediaPlayer

Xamarin.forms 依赖服务和mediaPlayer,xamarin.forms,Xamarin.forms,我使用依赖服务来使用Android MediaPlayer,但是一旦我将值从media player返回到共享项目,MediaPlayer的值就为空。我见过,也试过 我的界面 public interface IDictionaryPlayer { MediaPlayer SetGong(int timeoutBetweenWords); } 机器人 共享项目 public static MediaPlayer GongPlayer;

我使用依赖服务来使用Android MediaPlayer,但是一旦我将值从media player返回到共享项目,MediaPlayer的值就为空。我见过,也试过

我的界面

public interface IDictionaryPlayer
   {
        MediaPlayer SetGong(int timeoutBetweenWords);
  
   }
机器人

共享项目

    public static MediaPlayer GongPlayer;
    
         public static void SetPauseOrGongBetweenWords(int timeoutBetweenWords)
         {
                            GongPlayer = DependencyService.Get<IDictionaryPlayer>().SetGong(timeoutBetweenWords); // HERE ITS NULL
                            initialize = true;
       GongPlayer.Start();
         }

 public static void TryPausePlayer()
        {
            lock (playerLock)
            {
               
                if (GongPlayer != null && GongPlayer.IsPlaying)
                {
                    gongNeedsResume = true;
                    GongPlayer?.Pause();
                }
            }
        }
  public static void TryResumePlayer()
        {
           if (gongNeedsResume)
            {
                    gongNeedsResume = false;
                    GongPlayer?.Start();
            }
            
        }

 internal static void Clean()
        {
            disposeActive = true;

            if (GongPlayer != null)
            {
                GongPlayer.Dispose();
                GongPlayer = null;
            }
        }
公共静态媒体播放器;
公共静态void SetPauseOrGongBetweenWords(int-timeoutBetweenWords)
{
GongPlayer=DependencyService.Get().SetGong(timeoutBetweenWords);//此处为NULL
初始化=真;
GongPlayer.Start();
}
public static void TryPausePlayer()
{
锁(playerLock)
{
if(GongPlayer!=null&&GongPlayer.IsPlaying)
{
gongneedsreseme=true;
击鼓手?.Pause();
}
}
}
公共静态void TryResumePlayer()
{
如果(需要费用)
{
gongneedsreme=假;
GongPlayer?.Start();
}
}
内部静态空隙清理()
{
处置性=真实;
如果(玩家!=null)
{
depose();
payer=null;
}
}

MediaPlayer是一种特定于Android的类型,您的共享代码不知道如何引用它,我如何才能引用它?我尝试过使用activity,但似乎找不到正确的方法您不能使用MediaElement有什么原因吗?如果必须这样做,则需要公开通过接口访问的方法,所有实际工作都在平台中进行class@Jason我已经更新了我的问题,也许这会有所帮助
    public static MediaPlayer GongPlayer;
    
         public static void SetPauseOrGongBetweenWords(int timeoutBetweenWords)
         {
                            GongPlayer = DependencyService.Get<IDictionaryPlayer>().SetGong(timeoutBetweenWords); // HERE ITS NULL
                            initialize = true;
       GongPlayer.Start();
         }

 public static void TryPausePlayer()
        {
            lock (playerLock)
            {
               
                if (GongPlayer != null && GongPlayer.IsPlaying)
                {
                    gongNeedsResume = true;
                    GongPlayer?.Pause();
                }
            }
        }
  public static void TryResumePlayer()
        {
           if (gongNeedsResume)
            {
                    gongNeedsResume = false;
                    GongPlayer?.Start();
            }
            
        }

 internal static void Clean()
        {
            disposeActive = true;

            if (GongPlayer != null)
            {
                GongPlayer.Dispose();
                GongPlayer = null;
            }
        }