OpusFile.h 2.8 KB
/**
 ********************************************************************
 * @file   OpusFile.h
 *         OpusFile.c OpusFileSave.c 的头文件
 *
 *********************************************************************
 */

/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef OPUS_FILE_H
#define OPUS_FILE_H

/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
//#include "Megaphone/AudioMange/AudioMange_Param.h"

#ifdef __cplusplus
extern "C" {
#endif

/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/

/* Exported types ------------------------------------------------------------*/

typedef struct T_OpusSaveParam
{
	char FileName[128]; //保存的文件名
	int saveflag;		//如果开启,则按上面的文件名存储到sd卡
	int SampleRate;		//采样率  指每秒钟对声音信号采样的次数,单位为Hz(赫兹)。常见的采样率有8000Hz、16000Hz、44100Hz、48000Hz等。采样率决定了音频信号的频率范围(最高频率为采样率的一半,即奈奎斯特频率)。
	int BitRate;		//码率(bitrate):指每秒钟编码后的音频数据所占的比特数,单位为bps(比特每秒)。码率决定了编码后音频文件的大小和音质,通常码率越高,音质越好,但文件也越大。
	int Channels;		//声道数:默认单声道1
}T_OpusSaveParam;

typedef struct T_JZ_opusInfo {
	char name[128];
	int  size;
	int  duration;
} T_JZ_opusInfo;

/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode OpusFile_PlayFixedFile();
T_JZsdkReturnCode OpusFile_DecodeOpus(unsigned char *opusFile);
T_JZsdkReturnCode OpusFile_DecodeOpusAndSave(int SaveMode, unsigned char *InFile,unsigned char *OutFile);

T_JZsdkReturnCode OpusFile_SetDecodeBitrate(int bitrate);
T_JZsdkReturnCode OpusFile_SetDecodeChannels(int channels);
T_JZsdkReturnCode OpusFile_SetDecodeSampleRate(int sample_rate);

T_JZsdkReturnCode OpusFile_SaveOpusFileStart(T_OpusSaveParam TempOpus);
T_JZsdkReturnCode OpusFile_SaveOpusFileStream(unsigned char* Stream, int StreamLen);
T_JZsdkReturnCode OpusFile_SaveOpusFileEnd(int CheckFlag, unsigned char *CheckCode);

T_JZsdkReturnCode OpusFile_PlayOpus_ByName(char* name);

int OpusFile_GetDecodeFinshFlag();
int OpusFile_GetSaveFlag();

T_JZsdkReturnCode OpusInfo_GetList(T_JZ_opusInfo** list, int* count);
T_JZsdkReturnCode OpusInfo_DeleteAllByName(const char* fileName);
T_JZsdkReturnCode OpusInfo_FlushList();

T_JZsdkReturnCode JZsdk_OpusFileSave_Get_g_TempOpus(T_OpusSaveParam* Param);


T_JZsdkReturnCode OpusInfo_Init();

#ifdef __cplusplus
}
#endif

#endif