【问题标题】:File stay in isolatedstorage even i delete it文件保留在隔离存储中,即使我删除它
【发布时间】:2014-07-23 14:48:54
【问题描述】:

在我的应用程序中,我可以录制 3 次我的声音,还可以收听录制的声音。听完之后,通过另一个功能,我将它们从隔离存储中删除。但问题是,我听过的最后一个声音,留在隔离存储中并删除隔离存储的方法无法删除最后一次播放。下次我想录制声音时,我会出错。我该如何解决这个问题?

错误:

录音代码:

        private void SaveTempAudio(MemoryStream buffer)
    {

        using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
        {
            var bytes = buffer.GetWavAsByteArray(_recorder.SampleRate);
            var tempFileName = "tempwave_" + _counter +".wav" ;

            using (var audioStream = isoStore.CreateFile(tempFileName))
            {
                audioStream.Write(bytes, 0, bytes.Length);
                _counter++;
            }
        }
    }

用于播放和收听录制声音的代码;

        private void PlayBackSound( string fileName)
    {

        using (var isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (!isoStorage.FileExists(fileName))
                return;

            using (var fileStream = isoStorage.OpenFile(fileName, FileMode.Open, FileAccess.Read))
            {
                SoundPlayer.SetSource(fileStream);
                SoundPlayer.Play();

            }
        }
    }

用于删除我使用的文件:

             using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
        {
            isoStore.Remove();
        }

【问题讨论】:

    标签: windows-phone-8 windows-phone isolatedstorage


    【解决方案1】:

    【讨论】:

    • 你给出的路径正确吗?检查它。如果路径正确,那么上面应该可以正常工作
    • 是的,路径是正确的。当我不听录制的声音时,我没有问题,而且我可以将它们全部删除,但是如果我听它们,最后一个文件(不管是哪个文件),我会得到一个错误...
    • 可能是上次播放的引用没有释放,所以无法删除引用的文件
    • 是的,我认为你是对的,但我怎样才能发布该文件?
    • 当我做这样的事情时:SoundPlayer.Source= null;在播放功能结束时,一切顺利,无一例外,但我无法收听录制的声音
    【解决方案2】:

    作为从 mediaEelemnt 释放资源的解决方案,我所做的就是这段代码。现在我可以删除所有录制的声音,您只需要处理 mediaelement 的 MediaEnded 事件并将 null 传递给源属性:

    void SoundPlayer_MediaEnded(object sender, RoutedEventArgs e)
    {
          SoundPlayer.Source = null;
    }
    

    【讨论】:

      【解决方案3】:

      尝试在使用后关闭所有流。可能是由于流是打开的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-29
        • 1970-01-01
        相关资源
        最近更新 更多