/// <summary> /// SEを再生します。再生中のファイルがあればその再生の直後に鳴らします。 /// </summary> public SoundObject PlaySE(string filename, double volume = 1.0, bool usePlayInterval = true, bool ignoreError = false) { try { var data = new PlaySoundInfo { FilePath = filename, Volume = volume, UsePlayInterval = usePlayInterval, IgnoreError = ignoreError, }; return(PlaySE(data)); } catch (FileNotFoundException) { // サウンドシステムの初期化に失敗すると、 // 恒常的にこの例外が出るようになります。 } catch (Exception ex) { if (!ignoreError) { Log.ErrorException(ex, "{0}サウンドの再生に失敗しました。", Path.GetFileName(filename)); } } return(null); }
/// <summary> /// SEを再生します。再生中のファイルがあればその再生の直後に鳴らします。 /// </summary> public SoundObject PlaySE(PlaySoundInfo data) { if (data == null) { throw new ArgumentNullException("data"); } lock (SyncRoot) { if (this.backend == null) { return(null); } var fullpath = GetSoundFilePath(data.FilePath); if (data.UsePlayInterval && !CheckPlayInterval(fullpath)) { return(null); } var bsound = this.backend.Play(fullpath, data.Volume); if (bsound == null) { return(null); } return(new SoundObject(bsound)); } }