将录制文件导航到媒体元素或媒体播放器启动器

时间:2012-07-11 17:50:07

标签: c# windows-phone-7

我为wp7创建了一个录音机。在那里,我实际上使用了一个列表框(名为filesListBox)来显示录制的音频文件,如果用户点击任何文件,它只是播放音频(不是MediaPlayerLauncher )。它运作得很好。

private void filesListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        string filename = (string)e.AddedItems[0];
        PlayFromIS(filename);
    }

在此之后,我使用 MediaPlayerLauncher 播放列表框中录制的音频文件。它实际上打开了文件,但在播放音频时,它的速度极低,声音变为某种状态。

private void filesListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        try
        {
            string filename = (string)e.AddedItems[0];

            MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher();
            mediaPlayerLauncher.Media = new Uri(filename, UriKind.Relative);
            mediaPlayerLauncher.Controls = MediaPlaybackControls.All;
            mediaPlayerLauncher.Location = MediaLocationType.Data;
            mediaPlayerLauncher.Orientation = MediaPlayerOrientation.Landscape;
            mediaPlayerLauncher.Show();
        }
        catch (IndexOutOfRangeException x)
        {

        }
    }

由于这个原因,我创建了一个MediaElement.xaml页面,并在其中添加了 MediaElement 。但我不知道如何在媒体播放器启动器中访问MediaElement.xaml页面中的文件名(来自MainPage.xaml)

myMediaElement.Source = new Uri("??Don't know what to write here to access the filename??", UriKind.Relative);

我认为 MediaPlayerLauncher MediaElement 要好得多,但是其中任何一个都被接受了。任何人都可以帮我吗?提前感谢您的辛勤工作!

1 个答案:

答案 0 :(得分:0)

这样的事情可以完成这项工作,因为您可以从隔离存储中访问该文件:

using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (IsolatedStorageFileStream stream = file.OpenFile("file/path/here", FileMode.Open, FileAccess.Read))
    {
              this.mediaElement.SetSource(stream);
    }
}