C# MediaElement.不反映UWP变化的位置
我有一个MediaElement,它在设置时的位置不反映C# MediaElement.不反映UWP变化的位置,c#,uwp,windows-runtime,C#,Uwp,Windows Runtime,我有一个MediaElement,它在设置时的位置不反映 if(Playback.CanSeek) Playback.Position = new TimeSpan(0,0,4); 请注意,MediaElement当前已暂停,自动播放已打开等。 没有错误,但该行不会更改Position属性 也在Core Dispatcher中运行了代码,但仍然没有成功 编辑:还要注意,此MediaElement是从C创建的,与XAML没有关联,因为它在ViewModel中是一个库 谢谢。要解决此问题,您
if(Playback.CanSeek)
Playback.Position = new TimeSpan(0,0,4);
请注意,MediaElement当前已暂停,自动播放已打开等。
没有错误,但该行不会更改Position属性
也在Core Dispatcher中运行了代码,但仍然没有成功
编辑:还要注意,此MediaElement是从C创建的,与XAML没有关联,因为它在ViewModel中是一个库
谢谢。要解决此问题,您必须将MediaElement对象添加到XAML UI中 例如,类似以下代码:
<Grid x:Name="root" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Button Content="set" Click="Button_Click"></Button>
</Grid>
它播放什么?我记得有些东西是不能倒带的。它播放的是一个简单的mp3文件,对吗?这可能不适用于UWP MediaElement。因此,您建议我如何处理MVVM的情况,其中我的ViewModel有MediaElement,因为大部分逻辑都在那里。我将看看是否可以发送一个调度程序并在核心中使用它Thread@AbsoluteSith为什么不在XAML上放置一个MediaElement控件,并将源代码绑定到它?因为我有自己的自定义控件,我将其用作MediaElement控件MediaElement在由代码创建时仍然可以播放媒体文件。我认为这是不合理的。
MediaElement playback = new MediaElement();
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var file = await Package.Current.InstalledLocation.GetFileAsync("test.mp3");
if (file != null)
{
var stream = await file.OpenReadAsync();
playback.SetSource(stream, file.ContentType);
}
playback.Play();
root.Children.Add(playback);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (playback.CanSeek)
{
playback.Position = TimeSpan.FromSeconds(5);
}
}