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

📄 sound.c

📁 羚羊语音播放
💻 C
字号:

void PlaySnd(int SndIndex, int DAC_Channel)
{
	extern unsigned long RES_Table;
	unsigned long Addr,EndAddr;
	unsigned int Ret,Status;

    //Addr=RES_48_48K_SA;
	Addr = *(&RES_Table + (SndIndex<<1));		//获得语音资源的首地址
	EndAddr = *(&RES_Table + (SndIndex<<1) + 1);//获得语音资源的末地址
   // EndAddr=RES_48_48K_EA;
    
	SACM_S480_Initial(0);						//初始化为手动播放
	SACM_S480_InitQueue();						//初始化解码队列
	SACM_S480_InitDecoder(DAC_Channel);			//初始化解码算法

	while(1)									//播放循环
	{
		while(SACM_S480_TestQueue()!=1)			//如果解码队列未满
		{
	    	if(Addr>=EndAddr)					//如果访问到尾地址则停止获取数据
	    	{
	    		break;
	    	}
			Ret = SP_GetResource(Addr);			//获取数据
			SACM_S480_FillQueue(Ret);			//填充到解码队列中
	    	Addr++;
    	}
		if(SACM_S480_Status()&0x01)				//如果未播放完毕
		{
        	SACM_S480_Decoder();				//数据解码
		}
        else
        {
			SACM_S480_Stop();					//停止播放
    		break;								//结束播放
        }
		*(unsigned int*)0x7012 = 1;				//清看门狗
     }  	
}

⌨️ 快捷键说明

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