AttentionVoice.c 6.7 KB
#include <stdio.h>
#include <string.h>
#include "JZsdkLib.h"
#include "version_choose.h"
#include "Megaphone/Megaphone.h"
#include "DeviceInfo/DeviceInfo.h"

extern unsigned char *g_JZsdkParam_PlayPromptTTS; //播放提示音

T_JZsdkReturnCode Start_voice()
{
    if (APP_VERSION == APP_UART)
    {
        if (SPECIAL_VERSION == SPECIAL_DAOTONG)
        {
            //道通不播报启动语音
            return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
        }
        else
        {
            //根据语言信息设置语言
            E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
            if (LanguageInfo == LANGUAGE_INFO_CHINESE)
            {
                int language = 0x01;
                Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);

                //播放喊话器启动中
                Megaphone_TTS_Play("喊话器直连模式启动中", strlen("喊话器直连模式启动中"), JZ_FLAGCODE_OFF);    
            }
            else
            {
                int language = 0x11;
                Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);  
                
                //播放喊话器启动中
                Megaphone_TTS_Play("The direct connection mode of the speaker is being activated", strlen("The direct connection mode of the speaker is being activated"), JZ_FLAGCODE_OFF);

                delayS(2);
            }

            delayS(4);
        }
    }


}

T_JZsdkReturnCode Start_up_and_broadcast_voice()
{
    if (APP_VERSION == APP_PSDK)
    {
        //根据属地设置默认语言
        E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
        if (LanguageInfo == LANGUAGE_INFO_CHINESE)
        {
            int language = 0x01;
            Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);

            //播放喊话器启动中
            Megaphone_TTS_Play("喊话器准备就绪", strlen("喊话器准备就绪"), JZ_FLAGCODE_OFF);   
        }
        else
        {
            int language = 0x11;
            Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);  
            
            //播放喊话器启动中
            Megaphone_TTS_Play("Speaker Ready", strlen("Speaker Ready"), JZ_FLAGCODE_OFF);

        }

        delayS(4);
    }
    else if (APP_VERSION == APP_UART)
    {
        if (SPECIAL_VERSION == SPECIAL_DAOTONG)
        {
            //设置语音为英文
            int tone = 0x11;
            Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &tone);

            //播放喊话器启动中
            Megaphone_TTS_Play("Speaker Direct Mode Ready", strlen("Speaker Direct Mode Ready"), JZ_FLAGCODE_OFF);
            
            delayMs(1000);

            //设置语音为中文
            tone = 0x01;
            Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &tone);
        }
        else
        {

            //根据属地设置默认语言
            E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
            if (LanguageInfo == LANGUAGE_INFO_CHINESE)
            {
                int language = 0x01;
                Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);

                //播放喊话器启动中
                Megaphone_TTS_Play("喊话器直连模式准备就绪", strlen("喊话器直连模式准备就绪"), JZ_FLAGCODE_OFF); 
            }
            else
            {
                int language = 0x11;
                Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);  
                
                //播放喊话器启动中
                Megaphone_TTS_Play("Speaker Direct Mode Ready", strlen("Speaker Direct Mode Ready"), JZ_FLAGCODE_OFF);

            }
        }

        delayS(4);
    }
}

T_JZsdkReturnCode AttentionVoice_IndependencePlay()
{

    //如果是 -p sucess 程序成功 播放喊话器升级成功

    //如果是 -p updefeat 程序失败 播放喊话器升级失败

    //设置音量
    Megaphone_SetVolume(30 , 0);

    delayMs(100);

    //根据语言信息设置默认语言
    int language = 0;
    E_LanguageInfo LanguageInfo = LanguageInfo_Get_LanguageInfo();
    if (LanguageInfo == LANGUAGE_INFO_CHINESE)
    {
        language = 0x01;
        Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);
    }

    //如果是海外版 设置为英文
    else
    {
        language = 0x11;
        Megaphone_TTS_param(JZ_FLAGCODE_SET, MEGAPHONE_TTS_TONE, &language);  
    }

    //如果是 -p error 程序错误 播放喊话器错误
    if (strcmp((const char *)g_JZsdkParam_PlayPromptTTS, "error") == 0) 
    {  
        JZSDK_LOG_INFO("播放喊话器错误");

        if (language == 0x11)
        {
            Megaphone_TTS_Play("Software error, restarting Megaphone.", strlen("Software error, restarting Megaphone."), JZ_FLAGCODE_ON);
        }
        else
        {
            Megaphone_TTS_Play("程序错误,正在重启喊话器", strlen("程序错误,正在重启喊话器"), JZ_FLAGCODE_ON);
        }
    } 
    else if (strcmp((const char *)g_JZsdkParam_PlayPromptTTS, "upsucess") == 0) 
    {
        JZSDK_LOG_INFO("播放喊话器升级成功");

        if (language == 0x11)
        {
            Megaphone_TTS_Play("Upgrade completed, restarting Megaphone.", strlen("Upgrade completed, restarting Megaphone."), JZ_FLAGCODE_ON);
        }
        else
        {
            Megaphone_TTS_Play("升级已完成,正在重启喊话器", strlen("升级已完成,正在重启喊话器"), JZ_FLAGCODE_ON);
        }
    }
    else if (strcmp((const char *)g_JZsdkParam_PlayPromptTTS, "updefeat") == 0)
    {
        JZSDK_LOG_INFO("播放喊话器升级失败");

        if (language == 0x11)
        {
            Megaphone_TTS_Play("Upgrade defeat, restarting Megaphone.", strlen("Upgrade defeat, restarting Megaphone."), JZ_FLAGCODE_ON);
        }
        else
        {
            Megaphone_TTS_Play("升级失败,请检查Log或者重启喊话器", strlen("升级失败,请检查Log或者重启喊话器"), JZ_FLAGCODE_ON);
        }
    }
    else if (strcmp((const char *)g_JZsdkParam_PlayPromptTTS, "start") == 0)
    {
        JZSDK_LOG_INFO("播放喊话器启动中");

        if (language == 0x11)
        {
            Megaphone_TTS_Play("Megaphone starting.", strlen("Megaphone starting."), JZ_FLAGCODE_ON);
        }
        else
        {
            Megaphone_TTS_Play("喊话器启动中", strlen("喊话器启动中"), JZ_FLAGCODE_ON);
        }
    }

    delayMs(100);
    
    //等待播放状态结束
    while(1)
    {
        if (Megaphone_GetMegaphoneStatus() != JZ_FLAGCODE_OFF)
        {
            delayMs(1);
            continue;
        }
        
        break;
    }

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}