void Audio::Cleanup()
{
	if (instance_audio_)
	{
		nim_audio_uninit_module f_uninit = Function<nim_audio_uninit_module>("nim_audio_uninit_module");
		f_uninit();
		::FreeLibrary(instance_audio_);
		instance_audio_ = NULL;
	}
}
void Audio::Cleanup()
{
	if (instance_audio_)
	{
		nim_audio_uninit_module f_uninit = Function<nim_audio_uninit_module>("nim_audio_uninit_module");
		f_uninit();
		QLOG_APP(L"uninit audio module");

		::FreeLibrary(instance_audio_);
		instance_audio_ = NULL;
		QLOG_APP(L"free audio library");
	}
}
bool Audio::RegCancelAudioCb(nim_rescode_cb cb)
{
	nim_audio_reg_cancel_audio_cb f_uninit = Function<nim_audio_reg_cancel_audio_cb>("nim_audio_reg_cancel_audio_cb");
	return f_uninit(cb);
}
bool Audio::RegStopCaptureCb(nim_stop_capture_cb cb)
{
	nim_audio_reg_stop_capture_cb f_uninit = Function<nim_audio_reg_stop_capture_cb>("nim_audio_reg_stop_capture_cb");
	return f_uninit(cb);
}
bool Audio::RegStartCaptureCb(nim_rescode_cb cb)
{
	nim_audio_reg_start_capture_cb f_uninit = Function<nim_audio_reg_start_capture_cb>("nim_audio_reg_start_capture_cb");
	return f_uninit(cb);
}
bool Audio::RegStopPlayCb(nim_rescode_id_cb cb)
{
	nim_audio_reg_stop_play_cb f_uninit = Function<nim_audio_reg_stop_play_cb>("nim_audio_reg_stop_play_cb");
	return f_uninit(cb);
}
bool Audio::StopPlayAudio()
{
	nim_audio_stop_play_audio f_uninit = Function<nim_audio_stop_play_audio>("nim_audio_stop_play_audio");
	return f_uninit();
}
bool Audio::PlayAudio(const char* file_path, const char* call_id, const char* res_id, nim_audio_type audio_format)
{
	nim_audio_play_audio f_uninit = Function<nim_audio_play_audio>("nim_audio_play_audio");
	return f_uninit(file_path, call_id, res_id, audio_format);
}
bool Audio::CancelAudio(const char* file_path)
{
	nim_audio_cancel_audio f_uninit = Function<nim_audio_cancel_audio>("nim_audio_cancel_audio");
	return f_uninit(file_path);
}
bool Audio::StopCapture()
{
	nim_audio_stop_capture f_uninit = Function<nim_audio_stop_capture>("nim_audio_stop_capture");
	return f_uninit();
}
bool Audio::StartCapture(const char* call_id, const char* res_id, nim_audio_type audio_format/* = AAC*/, int volume/* = 180*/, int loudness/* = 0*/)
{
	nim_audio_start_capture f_uninit = Function<nim_audio_start_capture>("nim_audio_start_capture");
	return f_uninit(call_id, res_id, audio_format, volume, loudness);
}
bool Audio::PlayAudio(const char* call_id, const char* res_id, const char* file_path)
{
	nim_audio_play_audio f_uninit = Function<nim_audio_play_audio>("nim_audio_play_audio");
	return f_uninit(call_id, res_id, file_path);
}