2011-11-27 22 views
0

私はWP7で新しく、ボタンを押したときにMediaElementで音を再生しようとしています。 動作しますが、残念ながら「IsolatedStorageFileStreamで操作が許可されません」というメッセージが表示されます。どうすればそれを避けることができますか?MediaElementが繰り返し再生例外

プレイ方法:

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); 
    } 
} 

イベントハンドラ:

void me_MediaOpened(object sender, RoutedEventArgs e) 
{ 
    mediaElement.Play(); 
} 

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

答えて

0

あなたは一度だけ再生ボタンをクリックして許可するユーザーに対してたい場合。一つの方法があります。

あなたは、低サイズのストリームを扱っている場合は、それをより柔軟にする必要があります再生する前に、 memorystreamから filestreamをロード
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; 
     } 
} 

+0

MediaElementは 'MemoryStream'を再生できません。あなたが言いましたように、私はあなたの解決策を受け入れます。相違点は、私は開幕が始まると旗を真実にし、メディアが開かれたら私は偽とする。 – keradi