SKYENGINE API 参考手册返回目录 |
(int32 code =
222x,
int32 mr_platEx
uint8* input,
int32 input_len,
uint8** output,
int32* output_len,
MR_PLAT_EX_CB*
cb
)
Description
多通道加载。加载一个用于多通道的数据,目前只支持wav和midi 。
Parameters
Name
Description
input
T_BG_PLAY_REQ数据结构指针
input_len
T_BG_PLAY_REQ数据结构大小
output
无
output_len
无
cb
无
MR_FAILED 失败
其他 一个句柄,以后操作(播放,停止,关闭)都使用本句柄。
T_BG_PLAY_REQ数据结构:
typedef struct
{
uint8 *data;
uint32 len;
int32 loop;
}T_BG_PLAY_REQ;platEx(222x)其中x代表音频类型的枚举值:
typedef enum tagT_MEDIA_TYPE
{
MEDIA_MIDI = 1,
MEDIA_WAVE,
MEDIA_MP3,
MEDIA_AMR,
MEDIA_PCM,
MEDIA_M4A,
MEDIA_AAC,
MEDIA_LYRIC,
MEDIA_UNKNOW
}T_MEDIA_TYPE;
/*mrp code*/
void GetAudioDataStream(const char* name,char*buf,int32 buflen)
{
MR_FILE_HANDLE fh;
int len=0;
fh = mrc_open( name, MR_FILE_RDONLY );
len = mrc_read( fh, (void *)buf, buflen );
mrc_close( fh) ;
}
int32 MultipathLoadAudio(const char* audioName)
{
T_BG_PLAY_REQ loadReq;
int32 len_wav;
char *buffer_wav = NULL;
int32 hdl_wav = 0;
len_wav = mrc_getLen( audioName );
buffer_wav = (char*)malloc(len_wav);
GetAudioDataStream( audioName, buffer_wav, len_wav );
loadReq.data = buffer_wav;
loadReq.len = len_wav;
loadReq.loop = 0;
hdl_wav = mrc_platEx( 2222, (uint8*)&loadReq, sizeof(T_BG_PLAY_REQ), NULL, NULL, NULL );
if(MR_FAILED == re)
return MR_FAILED;
else
return hdl_wav;
}