私はUWPで私のオーディオファイルをループしたいです。ここに私のクラスには、次のとおりです。オーディオファイルをループするには?
public class NuriSound
{
public enum SoundEfxEnum
{
Click,
Dice,
Theme,
}
public class SoundEffects
{
private Dictionary<SoundEfxEnum, MediaElement> _effects;
public SoundEffects()
{
_effects = new Dictionary<SoundEfxEnum, MediaElement>();
LoadEfx();
}
private async void LoadEfx()
{
_effects.Add(SoundEfxEnum.Theme, await LoadSoundFile("theme.wav"));
_effects.Add(SoundEfxEnum.Click, await LoadSoundFile("click.wav"));
_effects.Add(SoundEfxEnum.Dice, await LoadSoundFile("dice.wav"));
}
private async Task<MediaElement> LoadSoundFile(string v)
{
MediaElement snd = new MediaElement();
snd.AutoPlay = false;
StorageFolder folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("sounds");
StorageFile file = await folder.GetFileAsync(v);
var stream = await file.OpenAsync(FileAccessMode.Read);
snd.SetSource(stream, file.ContentType);
return snd;
}
public async Task Play(SoundEfxEnum efx)
{
var mediaElement = _effects[efx];
mediaElement.Play();
}
public async Task Stop(SoundEfxEnum efx)
{
var mediaElement = _effects[efx];
mediaElement.Stop();
}
public async Task Loop(SoundEfxEnum efx)
{
var mediaElement = _effects[efx];
// ...
}
}
}
私はタスク「ループ」を使用し、このようにそれを呼びたい: 「App.MyAppSounds.Loop(NuriSound.SoundEfxEnum.Themeを)待ちますか」? 私はそれを動作させるために書く必要がありますか?
私はあなたのコードが気に入っていますが、それはまだ一度再生されます。 – Zitar9161
ボタンのクリックイベントで使用します。 – Zitar9161
IsLoopingが自分のタスクLoadSoundFileで動作します。私はループのために新しいものを作成しました。 – Zitar9161