|
|
|
/**
|
|
|
|
/**
|
|
|
|
********************************************************************
|
|
|
|
* @file test_widget_speaker.c
|
|
|
|
* @brief
|
|
...
|
...
|
@@ -320,7 +320,7 @@ DecodeFinsh: |
|
|
|
|
|
|
|
static T_DjiReturnCode DjiTest_PlayAudioData(void)
|
|
|
|
{
|
|
|
|
USER_LOG_INFO("播放固定位置的录音DjiTest_PlayAudioData ");
|
|
|
|
JZSDK_LOG_INFO("播放固定位置的录音DjiTest_PlayAudioData ");
|
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
do
|
|
|
|
{
|
|
...
|
...
|
@@ -350,6 +350,7 @@ static T_DjiReturnCode DjiTest_PlayTtsData(void) |
|
|
|
T_DjiReturnCode returnCode;
|
|
|
|
|
|
|
|
USER_LOG_INFO("DjiTest_PlayTtsData");
|
|
|
|
JZSDK_LOG_INFO("DjiTest_PlayTtsData");
|
|
|
|
|
|
|
|
returnCode = DjiAircraftInfo_GetBaseInfo(&aircraftInfoBaseInfo);
|
|
|
|
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
|
...
|
...
|
@@ -398,7 +399,7 @@ static T_DjiReturnCode DjiTest_PlayTtsData(void) |
|
|
|
#ifdef MEGAPHONE_CONFIG_STATUS_ON
|
|
|
|
|
|
|
|
//增加一个标志位,确认播放完成
|
|
|
|
while (Megaphone_GetMegaphoneStatus() == 0x20) //如果仍然在播放opus录音
|
|
|
|
while (Megaphone_GetMegaphoneStatus() == 0x20) //如果仍然在播放tts
|
|
|
|
{
|
|
|
|
delayMs(100);
|
|
|
|
}
|
|
...
|
...
|
@@ -645,7 +646,7 @@ static T_DjiReturnCode ReceiveTtsData(E_DjiWidgetTransmitDataEvent event, |
|
|
|
T_DjiReturnCode returnCode;
|
|
|
|
|
|
|
|
tts_Or_audio_flag = 1;
|
|
|
|
JZSDK_LOG_INFO("TTS接收");
|
|
|
|
JZSDK_LOG_INFO("TTS接收 :%d size:%d", event, size);
|
|
|
|
|
|
|
|
if (event == DJI_WIDGET_TRANSMIT_DATA_EVENT_START) {
|
|
|
|
USER_LOG_INFO("Create tts file.");
|
|
...
|
...
|
@@ -703,7 +704,9 @@ static T_DjiReturnCode ReceiveAudioData(E_DjiWidgetTransmitDataEvent event, |
|
|
|
int RealTime_PlayMode_Switch = Get_Opus_PlayMode();
|
|
|
|
|
|
|
|
tts_Or_audio_flag = 2;
|
|
|
|
JZSDK_LOG_INFO("audio接收");
|
|
|
|
//JZSDK_LOG_INFO("audio接收");
|
|
|
|
|
|
|
|
JZSDK_LOG_INFO("AUDIO接收 :%d size:%d", event, size);
|
|
|
|
|
|
|
|
if(RealTime_PlayMode_Switch == 0)
|
|
|
|
{
|
|
...
|
...
|
@@ -844,7 +847,7 @@ static T_DjiReturnCode ReceiveAudioData(E_DjiWidgetTransmitDataEvent event, |
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
JZSDK_LOG_INFO("audio接受完毕");
|
|
|
|
//JZSDK_LOG_INFO("audio接受完毕");
|
|
|
|
|
|
|
|
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
|
|
|
|
}
|
|
...
|
...
|
@@ -872,29 +875,29 @@ static void *DjiTest_WidgetSpeakerTask(void *arg) |
|
|
|
}
|
|
|
|
|
|
|
|
if (s_speakerState.state == DJI_WIDGET_SPEAKER_STATE_PLAYING) {
|
|
|
|
//如果处于回放模式
|
|
|
|
if (s_speakerState.playMode == DJI_WIDGET_SPEAKER_PLAY_MODE_LOOP_PLAYBACK)
|
|
|
|
{
|
|
|
|
if (s_speakerState.workMode == DJI_WIDGET_SPEAKER_WORK_MODE_VOICE) {
|
|
|
|
USER_LOG_DEBUG("Waiting opus decoder finished...");
|
|
|
|
while (s_isDecodeFinished == false) {
|
|
|
|
osalHandler->TaskSleepMs(1);
|
|
|
|
}
|
|
|
|
djiReturnCode = DjiTest_PlayAudioData();
|
|
|
|
if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
|
|
|
USER_LOG_ERROR("Play audio data failed, error: 0x%08llX.", djiReturnCode);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
djiReturnCode = DjiTest_PlayTtsData();
|
|
|
|
if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
|
|
|
USER_LOG_ERROR("Play tts data failed, error: 0x%08llX.", djiReturnCode);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
osalHandler->TaskSleepMs(1000);
|
|
|
|
}
|
|
|
|
|
|
|
|
//单放模式
|
|
|
|
else {
|
|
|
|
////如果处于回放模式
|
|
|
|
//if (s_speakerState.playMode == DJI_WIDGET_SPEAKER_PLAY_MODE_LOOP_PLAYBACK)
|
|
|
|
//{
|
|
|
|
// if (s_speakerState.workMode == DJI_WIDGET_SPEAKER_WORK_MODE_VOICE) {
|
|
|
|
// USER_LOG_DEBUG("Waiting opus decoder finished...");
|
|
|
|
// while (s_isDecodeFinished == false) {
|
|
|
|
// osalHandler->TaskSleepMs(1);
|
|
|
|
// }
|
|
|
|
// djiReturnCode = DjiTest_PlayAudioData();
|
|
|
|
// if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
|
|
|
// USER_LOG_ERROR("Play audio data failed, error: 0x%08llX.", djiReturnCode);
|
|
|
|
// }
|
|
|
|
// } else {
|
|
|
|
// djiReturnCode = DjiTest_PlayTtsData();
|
|
|
|
// if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
|
|
|
// USER_LOG_ERROR("Play tts data failed, error: 0x%08llX.", djiReturnCode);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// osalHandler->TaskSleepMs(1000);
|
|
|
|
//}
|
|
|
|
//
|
|
|
|
////单放模式
|
|
|
|
//else {
|
|
|
|
//如果工作模式为语音
|
|
|
|
if (s_speakerState.workMode == DJI_WIDGET_SPEAKER_WORK_MODE_VOICE)
|
|
|
|
{
|
|
...
|
...
|
@@ -920,16 +923,16 @@ static void *DjiTest_WidgetSpeakerTask(void *arg) |
|
|
|
USER_LOG_ERROR("lock mutex error: 0x%08llX.", djiReturnCode);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (s_speakerState.playMode == DJI_WIDGET_SPEAKER_PLAY_MODE_SINGLE_PLAY)
|
|
|
|
{
|
|
|
|
//if (s_speakerState.playMode == DJI_WIDGET_SPEAKER_PLAY_MODE_SINGLE_PLAY)
|
|
|
|
//{
|
|
|
|
s_speakerState.state = DJI_WIDGET_SPEAKER_STATE_IDEL;
|
|
|
|
}
|
|
|
|
//}
|
|
|
|
|
|
|
|
djiReturnCode = osalHandler->MutexUnlock(s_speakerMutex);
|
|
|
|
if (djiReturnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
|
|
|
|
USER_LOG_ERROR("unlock mutex error: 0x%08llX.", djiReturnCode);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
...
|
...
|
@@ -948,7 +951,7 @@ T_JZsdkReturnCode Speaker_Set_SpeakerState_state(int value) |
|
|
|
s_speakerState.state = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
//循环模式
|
|
|
|
//循环模式90
|
|
|
|
T_JZsdkReturnCode Speaker_Set_SpeakerPlaymode(int value)
|
|
|
|
{
|
|
|
|
s_speakerState.playMode = value;
|
|
...
|
...
|
@@ -957,6 +960,7 @@ T_JZsdkReturnCode Speaker_Set_SpeakerPlaymode(int value) |
|
|
|
//音量
|
|
|
|
T_JZsdkReturnCode Speaker_Set_SpeakerVolume(int value)
|
|
|
|
{
|
|
|
|
//JZSDK_LOG_DEBUG("set speaker_volume :%d ",value);
|
|
|
|
s_speakerState.volume = value;
|
|
|
|
}
|
|
|
|
|
...
|
...
|
|