mirror of
https://github.com/Ryujinx/Opentk.git
synced 2024-12-27 04:15:36 +00:00
6bbaad8bfb
Made example source code visible for all examples in example browser. Updated Prebuild.exe to newest SVN version (resolves issues with resources). Added .rtf and .resx files to Examples project in Prebuild.xml.
57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
#region --- License ---
|
|
/* Licensed under the MIT/X11 license.
|
|
* Copyright (c) 2006-2008 the OpenTK Team.
|
|
* This notice may not be removed from any source distribution.
|
|
* See license.txt for licensing details.
|
|
*/
|
|
#endregion
|
|
|
|
using System;
|
|
using System.Threading;
|
|
using System.IO;
|
|
|
|
using OpenTK.Audio;
|
|
|
|
namespace Examples
|
|
{
|
|
[Example("Playback", ExampleCategory.OpenAL, "1.1")]
|
|
public class Playback
|
|
{
|
|
static readonly string filename = Path.Combine(Path.Combine("Data", "Audio"), "the_ring_that_fell.wav");
|
|
|
|
public static void Main()
|
|
{
|
|
using (AudioContext context = new AudioContext())
|
|
using (AudioReader sound = new AudioReader(filename))
|
|
{
|
|
Console.WriteLine("Testing WaveReader({0}).ReadToEnd()", filename);
|
|
|
|
int buffer = AL.GenBuffer();
|
|
int source = AL.GenSource();
|
|
int state;
|
|
|
|
AL.BufferData(buffer, sound.ReadToEnd());
|
|
AL.Source(source, ALSourcei.Buffer, buffer);
|
|
AL.SourcePlay(source);
|
|
|
|
Console.Write("Playing");
|
|
|
|
// Query the source to find out when it stops playing.
|
|
do
|
|
{
|
|
Thread.Sleep(250);
|
|
Console.Write(".");
|
|
AL.GetSource(source, ALGetSourcei.SourceState, out state);
|
|
}
|
|
while ((ALSourceState)state == ALSourceState.Playing);
|
|
|
|
Console.WriteLine();
|
|
|
|
AL.SourceStop(source);
|
|
AL.DeleteSource(source);
|
|
AL.DeleteBuffer(buffer);
|
|
}
|
|
}
|
|
}
|
|
}
|