首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaElement重复播放异常

MediaElement重复播放异常
EN

Stack Overflow用户
提问于 2011-11-28 05:45:13
回答 1查看 539关注 0票数 0

我是WP7的新手,当我按下一个按钮的时候,我正在尝试用MediaElement播放声音。它的工作,但不幸的是,我得到“操作不允许在IsolatedStorageFileStream上”异常时,我重复按下按钮,在声音开始之前。我该如何避免这种情况呢?

Play方法:

代码语言:javascript
复制
public void Play(string filename)
{
    try
    {
        mediaElement.Stop();
        mediaElement.ClearValue(MediaElement.SourceProperty);

        using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (IsolatedStorageFileStream fileStream = isf.OpenFile(@"shared\transfers\" + filename, FileMode.Open))
            {
                mediaElement.SetSource(fileStream);
                mediaElement.IsMuted = false;
                mediaElement.Volume = 1.0;
            }
        }
    }
    catch (Exception e)
    {
        MessageBox.Show(e.Message);
    }
}

事件处理程序:

代码语言:javascript
复制
void me_MediaOpened(object sender, RoutedEventArgs e)
{
    mediaElement.Play();
}

void me_MediaEnded(object sender, RoutedEventArgs e)
{
    mediaElement.ClearValue(MediaElement.SourceProperty);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-28 12:08:25

如果您希望允许用户仅单击播放按钮一次。一种方法是。

代码语言:javascript
复制
public bool IsPlaying = false;
    void me_MediaOpened(object sender, RoutedEventArgs e)
        {


    if(!IsPlaying){
        mediaElement.Play();
        IsPlaying = true;
        }
    }

    void me_MediaEnded(object sender, RoutedEventArgs e)
    {
        if(IsPlaying){
        mediaElement.ClearValue(MediaElement.SourceProperty);
        IsPlaying = false;
        }
}

如果你正在处理小尺寸的流,在播放之前将filestream加载到memorystream应该会让它更灵活。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8289328

复制
相关文章

相似问题

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