⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sound.cpp.bak

📁 一个用于 Flash 文件的Visual c++ 源程序代码
💻 BAK
字号:
#include "../global.h"
#include "../sndmix.h"
#include "sound.h"
#include "../sdl/SDL_error.h"



void NativeSoundMix::Init( CSoundMix* _soundMix )
{
	isOpen	= false;
	soundMix = _soundMix;
}

NativeSoundMix::~NativeSoundMix()
{}

void NativeSoundMix::OpenDevice()
{
// 	SDL_AudioSpec wanted;

	*nBuffers = 4;
	*nSamples = 4096;

	/* Set the audio format */
	audioData.freq		= 22050;
	audioData.format	= AUDIO_S16;
	audioData.channels = 2;			/* 1 = mono, 2 = stereo */
	audioData.samples	= 1024;			/* Good low-latency value for callback */
	audioData.callback = SoundCallback;
	audioData.userdata = this;

	/* Open the audio device, forcing the desired format */
	if ( SDL_OpenAudio(&wanted, NULL ) < 0 ) 
	{
			FLASHOUTPUT( "Couldn't open audio: %s\n", SDL_GetError() );
			isOpen = false;
			*format = 0;
			return;
	}
	isOpen = true;
	*format = sndStereo | snd16Bit | snd22K;
}

void NativeSoundMix::CloseDevice()
{
	SDL_CloseAudio();
	isOpen = false;
}

void NativeSoundMix::EnterCritical()
{
	SDL_LockAudio();
}

void NativeSoundMix::LeaveCritical()
{
	SDL_UnlockAudio();
}


void SoundCallback(void *udata, U8 *stream, int len)
{
// 	if ( isOpen )
// 	{
// 		CSoundMix* soundMix = (CSoundMix*) udata;
// 
// 	/* Only play if we have data left */
// 	if ( audio_len == 0 )
// 			return;
// 
// 	/* Mix as much data as possible */
// 	len = ( len > audio_len ? audio_len : len );
// 	SDL_MixAudio(stream, audio_pos, len, SDL_MIX_MAXVOLUME)
// 	audio_pos += len;
// 	audio_len -= len;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -