C# 调用Play()后CrossMediaManager.Current.Status未更改

C# 调用Play()后CrossMediaManager.Current.Status未更改,c#,xamarin.forms,C#,Xamarin.forms,我正在使用Plugin.MediaManager从url播放音频。我使用CrossMediaManager.Current.Status播放/暂停音频 代码: if(CrossMediaManager.Current.Status == MediaPlayerStatus.Stopped) { await CrossMediaManager.Current.Play(url); } else if(CrossMediaManager.Current.Status == MediaPlay

我正在使用
Plugin.MediaManager
从url播放音频。我使用
CrossMediaManager.Current.Status
播放/暂停音频

代码:

if(CrossMediaManager.Current.Status == MediaPlayerStatus.Stopped)
{
    await CrossMediaManager.Current.Play(url);
}
else if(CrossMediaManager.Current.Status == MediaPlayerStatus.Playing) // this never called because status is always stopped.
{
    await CrossMediaManager.Current.Pause();
}
else if(CrossMediaManager.Current.Status == MediaPlayerStatus.Paused)
{
    await CrossMediaManager.Current.PlaybackController.Pause();
}
为什么这里的地位没有改变? 请帮忙


谢谢

如果不看到您的完整实施,就很难准确地知道出了什么问题

下面是的工作实现,它使用来自的视频剪辑

完整的示例应用程序可在此处找到:

公共类NativeVideoPlayerPage:ContentPage
{
公共本地视频播放网页()
{
CrossMediaManager.Current.RequestHeaders.Add(“授权”,“持票人EYJ1CM46BWLJCM9ZB2Z0OMF6DXJLOM1LZGLHC2VYDMLJZM6Y29UdgVudgtlewLKZW50AWZPZXIIOI5ZGRHMGJYY01NmZLZMZM5ZY2M2ZWE4MILC3IOIJ0M8VDGVZDGFJ5JB20VIIYXKIDZJ0J0KJ0KJ0W9UdJ0UdJ0W9UdJ0UdG9UdG9UdGgV9UdGgV0UdGgW5ZgV5ZZZZUdJ0UdJ0UdG9UdJ0UdJ0UdG9UdG9UdJ0UdG9UdG9UdG9UdG9UdG9U;
const int horizontalbuttonadding=5;
常量int垂直按钮添加=10;
var videoView=新的videoView
{
来源=@“https://amssamples.streaming.mediaservices.windows.net/830584f8-f0c8-4e41-968b-6538b9380aa5/TearsOfSteelTeaser.ism/manifest(格式=m3u8 aapl)”;
AspectMode=Plugin.MediaManager.Abstractions.Enums.VideoAspectMode.AspectFit
};
var playButton=新按钮{Text=“Play”};
playButton.Clicked+=HandlePlayButton单击;
var pauseButton=新按钮{Text=“Pause”};
pauseButton.Clicked+=HandlePauseButtonClicked;
var stopButton=新按钮{Text=“Stop”};
stopButton.Clicked+=HandleStopButtonClicked;
var relativeLayout=新的relativeLayout();
relativeLayout.Children.Add(videoView,
约束常数(0),
约束常数(0),
Constraint.RelativeToParent(parent=>parent.Width),
Constraint.RelativeToParent(parent=>parent.Height));
relativeLayout.Children.Add(播放按钮,
Constraint.Constant(水平按钮添加),
Constraint.RelativeToParent(parent=>parent.Height-verticalButtonPadding-getPlayButtonHeight(parent)),
Constraint.RelativeToParent(parent=>(parent.Width-4*horizontalbuttonadding)/3);
relativeLayout.Children.Add(暂停按钮,
Constraint.RelativeToView(播放按钮,(父视图,视图)=>view.X+view.Width+水平按钮添加),
Constraint.RelativeToParent(parent=>parent.Height-verticalButtonPadding-getPauseButtonHeight(parent)),
Constraint.RelativeToParent(parent=>(parent.Width-4*horizontalbuttonadding)/3);
relativeLayout.Children.Add(停止按钮,
Constraint.RelativeToView(pauseButton,(父,视图)=>view.X+view.Width+水平按钮添加),
Constraint.RelativeToParent(parent=>parent.Height-verticalButtonPadding-getStopButtonHeight(parent)),
Constraint.RelativeToParent(parent=>(parent.Width-4*horizontalbuttonadding)/3);
Title=“本机视频播放器”;
内容=相对长度;
双getPlayButtonHeight(RelativeLayoutP)=>playButton.Measure(p.Width,p.Height)。Request.Height;
double getPauseButtonHeight(RelativeLayout p)=>pauseButton.Measure(p.Width,p.Height).Request.Height;
双getStopButtonHeight(RelativeLayoutP)=>stopButton.Measure(p.Width,p.Height)。Request.Height;
}
受保护的覆盖无效OnDisappearing()
{
base.OnDisappearing();
CrossMediaManager.Current.Pause();
}
void HandlePlayButtonClicked(对象发送者,事件参数)=>CrossMediaManager.Current.Play();
void HandleStopButtonClicked(对象发送方,EventArgs e)=>CrossMediaManager.Current.Stop();
void HandlePauseButtonClicked(对象发送方,事件参数)=>CrossMediaManager.Current.Pause();
}

谢谢你的评论。但是它会更新
CrossMediaManager
的状态吗?我只是想知道如何区分音频是播放还是暂停。我可以检查按钮文本。但有时按钮文本不会改变。这可能会影响我的音频播放器。所以我认为检查状态是更好的方法。