public void Play(string filePath) { SoundPlayerArgment arg = new SoundPlayerArgment(m_sound, filePath); if (soundBgWorker.IsBusy == false) { soundBgWorker.RunWorkerAsync(arg); } }
/// <summary> /// ファイルの読み込みと再生を実行する /// </summary> private void soundBgWorker_DoWork(object sender, DoWorkEventArgs e) { SoundPlayerArgment arg = e.Argument as SoundPlayerArgment; if (arg == null) { Debug.WriteLine("ERROR: サウンドオブジェクトを指定してください"); return; } if (arg.Sound.Loaded == false || arg.FilePath != "") { if (File.Exists(arg.FilePath) == false) { return; //再生するファイルが指定されていない } //読み込む Yanesdk.Ytl.YanesdkResult ret; switch (FileType.GetSoundType(arg.FilePath)) { case FileType.SoundType.Ogg: case FileType.SoundType.Wave: case FileType.SoundType.Midi: ret = arg.Sound.Load(arg.FilePath); break; default: ret = Yanesdk.Ytl.YanesdkResult.FileNotFound; return; } if (ret != Yanesdk.Ytl.YanesdkResult.NoError) { Debug.WriteLine("再生できません: ret=" + ret.ToString()); return; //エラーが発生 } } if (arg.Sound.IsPlaying()) { arg.Sound.Stop(); //再生中の時は一旦停止する } arg.Sound.Play(); }