void PlayCurrentSound(IAudioOutput[] outputs)
        {
            for (int i = 0; i < monoOutputs.Length; i++)
            {
                IAudioOutput output = outputs[i];
                if (output == null)
                {
                    output = GetPlatformOut();
                    output.Create(1, firstSoundOut);
                    if (firstSoundOut == null)
                    {
                        firstSoundOut = output;
                    }
                    outputs[i] = output;
                }
                if (!output.DoneRawAsync())
                {
                    continue;
                }

                try {
                    output.PlayRawAsync(chunk);
                } catch (InvalidOperationException ex) {
                    HandleSoundError(ex);
                }
                return;
            }
        }
Beispiel #2
0
		void PlaySound(IAudioOutput output, float volume) {
			try {
				output.Initalise(chunk);
				//uint newSrc = output.GetSource();
				//output.SetSource(newSrc);
				output.SetVolume(volume);
				
				/*LocalPlayer player = game.LocalPlayer;
				
				Vector3 camPos = game.CurrentCameraPos;
				Vector3 eyePos = game.LocalPlayer.EyePosition;
				Vector3 oneY = Vector3.UnitY;
				
				Vector3 lookPos;
				//lookPos.X = (float)(Math.Cos(player.HeadX) * Math.Sin(player.HeadY));
				//lookPos.Y = (float)(-Math.Sin(player.HeadX));
				//lookPos.Z = (float)(Math.Cos(player.HeadY) * Math.Cos(player.HeadX));
				lookPos.X = game.Graphics.View.Row1.X;
				lookPos.Y = game.Graphics.View.Row1.Y;
				lookPos.Z = game.Graphics.View.Row1.Z;
				lookPos = Vector3.Normalize(lookPos);
				
				Vector3 upPos;
				upPos.X = game.Graphics.View.Row2.X;
				upPos.Y = game.Graphics.View.Row2.Y;
				upPos.Z = game.Graphics.View.Row2.Z;
				upPos = Vector3.Normalize(upPos);*/
				
				Vector3 pos = game.LocalPlayer.EyePosition;
				Vector3 feetPos = game.LocalPlayer.Position;
				Vector3 vel = game.LocalPlayer.Velocity;
				float yaw = game.LocalPlayer.HeadY;
				output.SetSoundGain(0f);
				output.SetSoundRefDist(0.5f);
				output.SetSoundMaxDist(1000f);
				output.SetListenerPos(0, 0, 0);
				//output.SetListenerPos(pos.X, pos.Y, pos.Z);
				//output.SetListenerVel(vel.X, vel.Y, vel.Z);
				//output.SetListenerDir(yaw);
				//output.SetSoundPos(feetPos.X, feetPos.Y, feetPos.Z);
				if (!output.IsPosSet()) {
				//	output.SetSoundPos(feetPos.X, feetPos.Y, feetPos.Z);
				//	output.SetSoundVel(0, 0, 0);
				}
				output.SetSoundPos(0, 0, 0);
				//output.SetSoundRelative(true);
				
				output.PlayRawAsync(chunk);
			} catch (InvalidOperationException ex) {
				ErrorHandler.LogError("AudioPlayer.PlayCurrentSound()", ex);
				if (ex.Message == "No audio devices found")
					game.Chat.Add("&cNo audio devices found, disabling sounds.");
				else
					game.Chat.Add("&cAn error occured when trying to play sounds, disabling sounds.");
				
				SetSounds(0);
				game.SoundsVolume = 0;
			}
		}
Beispiel #3
0
        void PlaySound(IAudioOutput output)
        {
            try {
                output.PlayRawAsync(chunk);
            } catch (InvalidOperationException ex) {
                ErrorHandler.LogError("AudioPlayer.PlayCurrentSound()", ex);
                if (ex.Message == "No audio devices found")
                {
                    game.Chat.Add("&cNo audio devices found, disabling sounds.");
                }
                else
                {
                    game.Chat.Add("&cAn error occured when trying to play sounds, disabling sounds.");
                }

                SetSound(false);
                game.UseSound = false;
            }
        }
        void PlayCurrentSound(IAudioOutput[] outputs)
        {
            for (int i = 0; i < monoOutputs.Length; i++)
            {
                IAudioOutput output = outputs[i];
                if (output == null)
                {
                    output = GetPlatformOut();
                    output.Create(1, firstSoundOut);
                    if (firstSoundOut == null)
                    {
                        firstSoundOut = output;
                    }
                    outputs[i] = output;
                }

                if (output.DoneRawAsync())
                {
                    output.PlayRawAsync(chunk);
                    return;
                }
            }
        }