WP7.5/Silverlight アプリ...
ページの読み込み時に、サウンド クリップを再生します (例: Hello! Today is a great day.)。
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
seLoadInstance = seLoad.CreateInstance(); //I initialize this seLoad in Initialize method
seLoadInstance.Play();
}
これで、ページに 3 ~ 4 個の要素が追加されました。ユーザーがそれらのいずれかをクリックすると、その要素のサウンド クリップが再生されます。
private void ElementClick_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
seElementInstance = seElement.CreateInstance();
seElementInstance .Play();
}
私が欲しいのは 、ページが最初にロードされ、seLoadInstance が再生され、ユーザーが要素をクリックしている間、seElementInstance を再生したくないということです。
以下のようにseLoadInstanceの状態を確認して、seElementInstanceを再生しないようにすることができます
private void ElementClick_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if(seLoadTextInstance.State != SoundState.Playing)
{
seElementInstance = seElement.CreateInstance();
seElementInstance .Play();
}
}
しかし、上記の問題は、クリック時にseLoadInstanceを再生できる別の要素があることです。
問題:再生中の seLoadInstance が初めてのものか、要素のクリック時かを区別する方法がわかりません。
考えられる解決策: 1 つの方法は、異なるインスタンスを使用して同じサウンドを再生することです。
ロード時にフラグを設定するなど、より良い方法を望んでいましたが、処理できるSoundInstanceの完了または停止の明示的なイベントが見つかりませんでした。
何か案は??