0

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よりもはるかに優れていると思いますが、どちらでも受け入れられます。誰でもこれで私を助けることができますか? お疲れ様でした!

4

1 に答える 1

0

分離ストレージからファイルにアクセスできることを考えると、次のような方法で作業を行う必要があります。

using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (IsolatedStorageFileStream stream = file.OpenFile("file/path/here", FileMode.Open, FileAccess.Read))
    {
              this.mediaElement.SetSource(stream);
    }
}
于 2012-07-13T16:58:41.380 に答える