0

Web サービスからバイト ストリームとして保存された wav ファイルを読み込んでおり、レコードが表示されたときにそれを再生したいと考えています。電話 7 アプリ。

私のアプローチは、レコードに移動するときにバイト ストリームを分離ストレージの wav ファイルに保存し、その後、ボタンをクリックして再生したときにメディア プレーヤー (MediaElement1) のソースをそのソースに設定することでした。

以下は、「PlayButton」の現在のコードです。(サイズはバイト ストリームと一致しますが、オーディオ結果はありません)。ストリームをリソースとして保存された WAV ファイルに設定すると機能するので、Uri を分離ストレージ ファイルに設定する方法を知る必要があるだけかもしれません。

(例:次のコードが機能します)

Mediaelement1.Source = new Uri("SampleData\\MyMedia.wav",UriKind.Relative) Works
Mediaelement1.Position = new TimeSpan(0,0,0,0) ;
Mediaelement1.Play() ;

これが私のコードサンプルです...何かアイデアはありますか?

IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication() ;
IsolatedStorageFileStream str = new IsolatedStorageFileStream(
    "MyMedia.wav", FileMode.Open, isf) ;
long size = str.Length;
mediaelement mediaelement = new MediaElement() ;
mediaelement.SetSource(str) ;
mediaElement1.Source = mediaelement.Source ;
mediaElement1.Position = new TimeSpan(0, 0, 0, 0);
mediaElement1.Play();
4

2 に答える 2

2

2 つのメディア要素を作成する必要はありません。.SetSourcemediaElement1 を直接 呼び出すだけです。

MediaElement ソースを分離ストレージ内のムービーに設定する同様のコードがあり、正常に動作します。

using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
{
    using (var isfs = new IsolatedStorageFileStream("trailer.wmv", FileMode.Open, isf))
    {
        this.movie.SetSource(isfs);
    }
}

上記で、movie既に XAML で作成し、autoPlay を true に設定した MediaElement です。

最初に動作させたとき、上記でいくつかの問題がありました。

デバッグを支援するために、次のことを試すことをお勧めします。

  1. ファイルが完全に分離ストレージに正しく書き込まれていることを確認します。

  2. MediaFailed イベントを処理して、機能しない理由を調べます。

于 2010-10-27T09:38:35.020 に答える
0

私が気づいたことの 1 つは、デバイスがコンピューターにテザリングされている場合、オーディオが機能しないことです... mp3 ファイルを聴こうとしているときに、このデバイスで数時間を費やしました。

于 2010-11-23T22:49:13.753 に答える