首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaElement位置不变

MediaElement位置不变
EN

Stack Overflow用户
提问于 2013-07-18 16:50:30
回答 1查看 944关注 0票数 0

我想用MediaElement来播放音乐,当音乐播放到某个位置时,做一些动作。代码如下:

代码语言:javascript
复制
private void button1_Click(object sender, RoutedEventArgs e)
{
    mediaElement1.Play();
    game_pose_poller.RunWorkerAsync(); // game_pose_poller is a BackgroundWorker object
    button1.IsEnabled = false;
}

private void game_pose_poller_DoWork(object sender, DoWorkEventArgs e)
{
    while(true)
    {
        if (mediaElement1.Position >= sometime)
        {
            // do something

然而,我发现这个程序什么也没做。调试时,我发现mediaElement1.Position总是为零。为什么在调用Play()之后它总是为零?mediaElement1.Source是一个mp3文件,它作为资源包含在项目中,而LoadedBehavior是手动的(或Play() raise异常)。

EN

回答 1

Stack Overflow用户

发布于 2013-07-18 17:53:28

前段时间,我用DispatchTimer代替BackgroundWorker做了类似的事情。这就是我如何让它工作的:

代码语言:javascript
复制
private DispatcherTimer positionTimer;

private void button1_Click(object sender, RoutedEventArgs e)
{
    // Create a timer that will check your condition (every second for example)
    positionTimer= new DispatcherTimer();
    positionTimer.Interval = TimeSpan.FromSeconds(1);
    positionTimer.Tick += new EventHandler(positionTimerTick);
    positionTimer.Start();

    mediaElement1.Play();
    button1.IsEnabled = false;
}

void positionTimerTick(object sender, EventArgs e)
{
    if (mediaElement1.Position.TotalSeconds >= sometime)
    {
        // do something
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17718801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档