Add synchronized audio playback mechanism
parent
5baa1d7b40
commit
e9aacb44da
|
@ -224,6 +224,11 @@ namespace MoonWorks.Audio
|
|||
}
|
||||
}
|
||||
|
||||
public void SyncPlay()
|
||||
{
|
||||
FAudio.FAudio_CommitChanges(Handle, 1);
|
||||
}
|
||||
|
||||
internal void AddDynamicSoundInstance(StreamingSound instance)
|
||||
{
|
||||
streamingSounds.Add(new WeakReference<StreamingSound>(instance));
|
||||
|
|
|
@ -253,6 +253,7 @@ namespace MoonWorks.Audio
|
|||
}
|
||||
|
||||
public abstract void Play();
|
||||
public abstract void QueueSyncPlay();
|
||||
public abstract void Pause();
|
||||
public abstract void Stop();
|
||||
public abstract void StopImmediate();
|
||||
|
|
|
@ -41,6 +41,16 @@ namespace MoonWorks.Audio
|
|||
}
|
||||
|
||||
public override void Play()
|
||||
{
|
||||
PlayUsingOperationSet(0);
|
||||
}
|
||||
|
||||
public override void QueueSyncPlay()
|
||||
{
|
||||
PlayUsingOperationSet(1);
|
||||
}
|
||||
|
||||
private void PlayUsingOperationSet(uint operationSet)
|
||||
{
|
||||
if (State == SoundState.Playing)
|
||||
{
|
||||
|
@ -66,7 +76,7 @@ namespace MoonWorks.Audio
|
|||
IntPtr.Zero
|
||||
);
|
||||
|
||||
FAudio.FAudioSourceVoice_Start(Handle, 0, 0);
|
||||
FAudio.FAudioSourceVoice_Start(Handle, 0, operationSet);
|
||||
State = SoundState.Playing;
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,16 @@ namespace MoonWorks.Audio
|
|||
}
|
||||
|
||||
public override void Play()
|
||||
{
|
||||
PlayUsingOperationSet(0);
|
||||
}
|
||||
|
||||
public override void QueueSyncPlay()
|
||||
{
|
||||
PlayUsingOperationSet(1);
|
||||
}
|
||||
|
||||
private void PlayUsingOperationSet(uint operationSet)
|
||||
{
|
||||
if (State == SoundState.Playing)
|
||||
{
|
||||
|
@ -44,7 +54,7 @@ namespace MoonWorks.Audio
|
|||
State = SoundState.Playing;
|
||||
|
||||
Update();
|
||||
FAudio.FAudioSourceVoice_Start(Handle, 0, 0);
|
||||
FAudio.FAudioSourceVoice_Start(Handle, 0, operationSet);
|
||||
}
|
||||
|
||||
public override void Pause()
|
||||
|
|
Loading…
Reference in New Issue