正在显示
18 个修改的文件
包含
319 行增加
和
20 行删除
| 1 | #include <stdio.h> | 1 | #include <stdio.h> |
| 2 | #include "./JZsdk_DeviceCode.h" | 2 | #include "./JZsdk_DeviceCode.h" |
| 3 | 3 | ||
| 4 | +/************************* | ||
| 5 | + * | ||
| 6 | + * 获取设备名称 | ||
| 7 | + * | ||
| 8 | + * | ||
| 9 | + * ************************/ | ||
| 4 | unsigned char *JZsdk_GetDeviceName() | 10 | unsigned char *JZsdk_GetDeviceName() |
| 5 | { | 11 | { |
| 12 | + | ||
| 13 | + | ||
| 6 | return | 14 | return |
| 7 | } | 15 | } |
| @@ -63,6 +63,10 @@ typedef enum { | @@ -63,6 +63,10 @@ typedef enum { | ||
| 63 | 63 | ||
| 64 | } JZ_CheckCode; //检查校验码 | 64 | } JZ_CheckCode; //检查校验码 |
| 65 | 65 | ||
| 66 | +typedef enum { | ||
| 67 | + JZ_ERROR_SYSTEM_MODULE_CODE_NO_UPGRADE_FILE = 0x6000, //没有升级文件 | ||
| 68 | +}JZ_Ugrade_ErrorCode; | ||
| 69 | + | ||
| 66 | /* Exported functions --------------------------------------------------------*/ | 70 | /* Exported functions --------------------------------------------------------*/ |
| 67 | 71 | ||
| 68 | #ifdef __cplusplus | 72 | #ifdef __cplusplus |
| 1 | #include <stdio.h> | 1 | #include <stdio.h> |
| 2 | #include <pthread.h> | 2 | #include <pthread.h> |
| 3 | -#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h" | 3 | + |
| 4 | #include "JZsdkLib.h" | 4 | #include "JZsdkLib.h" |
| 5 | +#include "JZsdk_Hal.h" | ||
| 5 | 6 | ||
| 6 | T_JZsdkReturnCode HeartBeat_Uart1Check() | 7 | T_JZsdkReturnCode HeartBeat_Uart1Check() |
| 7 | { | 8 | { |
| 8 | - //1、获取串口1连接状态 | 9 | + //1、获取hal的使用状态 |
| 10 | + int JZsdk_HalPort_UseFlag(UART_DEV_1); | ||
| 9 | 11 | ||
| 10 | 12 | ||
| 11 | } | 13 | } |
| @@ -22,20 +24,20 @@ static void *HeartBeatTask(void *arg) | @@ -22,20 +24,20 @@ static void *HeartBeatTask(void *arg) | ||
| 22 | { | 24 | { |
| 23 | delayS(10); | 25 | delayS(10); |
| 24 | 26 | ||
| 25 | - HeartBeat_Uart1Check(); | 27 | + HeartBeat_HalCheck(); |
| 26 | } | 28 | } |
| 27 | 29 | ||
| 28 | } | 30 | } |
| 29 | 31 | ||
| 30 | /***************** | 32 | /***************** |
| 31 | * | 33 | * |
| 32 | - * 心跳帧初始化 | 34 | + * 心跳帧主设备类型的初始化 |
| 33 | * | 35 | * |
| 34 | * | 36 | * |
| 35 | * *************************/ | 37 | * *************************/ |
| 36 | -T_JZsdkReturnCode HeartBeat_Init() | 38 | +static T_JZsdkReturnCode HeartBeat_Main() |
| 37 | { | 39 | { |
| 38 | - pthread_t PowerMangerTask; | 40 | + pthread_t PowerMangerTask; |
| 39 | pthread_attr_t task_attribute; //线程属性 | 41 | pthread_attr_t task_attribute; //线程属性 |
| 40 | pthread_attr_init(&task_attribute); //初始化线程属性 | 42 | pthread_attr_init(&task_attribute); //初始化线程属性 |
| 41 | pthread_attr_setdetachstate(&task_attribute, PTHREAD_CREATE_DETACHED); //设置线程分离属性 | 43 | pthread_attr_setdetachstate(&task_attribute, PTHREAD_CREATE_DETACHED); //设置线程分离属性 |
| @@ -47,4 +49,17 @@ T_JZsdkReturnCode HeartBeat_Init() | @@ -47,4 +49,17 @@ T_JZsdkReturnCode HeartBeat_Init() | ||
| 47 | } | 49 | } |
| 48 | 50 | ||
| 49 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 51 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 52 | +} | ||
| 53 | + | ||
| 54 | +/***************** | ||
| 55 | + * | ||
| 56 | + * 心跳帧初始化 | ||
| 57 | + * | ||
| 58 | + * | ||
| 59 | + * *************************/ | ||
| 60 | +T_JZsdkReturnCode HeartBeat_Init() | ||
| 61 | +{ | ||
| 62 | + HeartBeat_Main(); | ||
| 63 | + | ||
| 64 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 50 | } | 65 | } |
| @@ -3,10 +3,13 @@ | @@ -3,10 +3,13 @@ | ||
| 3 | 3 | ||
| 4 | #include "BaseConfig.h" | 4 | #include "BaseConfig.h" |
| 5 | 5 | ||
| 6 | + | ||
| 6 | #define UPGRADE_FILE_DIR "/root/ugradeFile" | 7 | #define UPGRADE_FILE_DIR "/root/ugradeFile" |
| 7 | #define UPGRADE_FILE_STATUS_A "/root/ugradeFile/upgrade_status_a" | 8 | #define UPGRADE_FILE_STATUS_A "/root/ugradeFile/upgrade_status_a" |
| 8 | #define UPGRADE_FILE_STATUS_B "/root/ugradeFile/upgrade_status_b" | 9 | #define UPGRADE_FILE_STATUS_B "/root/ugradeFile/upgrade_status_b" |
| 9 | 10 | ||
| 11 | +#define REMOTE_UPGRADE_FILE_DIR "/root/ugradeFile/remote_ugradeFile.tar" | ||
| 12 | + | ||
| 10 | static int Upgrade_status = JZ_FLAGCODE_OFF; | 13 | static int Upgrade_status = JZ_FLAGCODE_OFF; |
| 11 | 14 | ||
| 12 | /************************************ | 15 | /************************************ |
| @@ -17,21 +20,30 @@ static int Upgrade_status = JZ_FLAGCODE_OFF; | @@ -17,21 +20,30 @@ static int Upgrade_status = JZ_FLAGCODE_OFF; | ||
| 17 | * *************************************/ | 20 | * *************************************/ |
| 18 | T_JZsdkReturnCode Upgrade_PackageParse() | 21 | T_JZsdkReturnCode Upgrade_PackageParse() |
| 19 | { | 22 | { |
| 20 | - //解析升级包 | 23 | + T_JZsdkReturnCode ret; |
| 24 | + unsigned char cmd[128] = {0}; | ||
| 21 | 25 | ||
| 22 | - //1、分析是否存在linux自身的升级包 | ||
| 23 | - unsigned char upgradeFileName[128]; | ||
| 24 | - int upgradeFileNameLen = 0; | ||
| 25 | - | ||
| 26 | - //拼接为升级包的名字 | ||
| 27 | - memcpy(upgradeFileName, ) | 26 | + //分析是否存在升级包 |
| 27 | + if (JZsdk_check_file_exists(REMOTE_UPGRADE_FILE_DIR) != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 28 | + { | ||
| 29 | + JZSDK_LOG_ERROR("Upgrade_PackageParse: upgrade file not exists"); | ||
| 30 | + return JZ_ERROR_SYSTEM_MODULE_CODE_NO_UPGRADE_FILE; | ||
| 31 | + } | ||
| 28 | 32 | ||
| 29 | - if (JZsdk_check_file_exists(UPGRADE_FILE_DIR)) | 33 | + //分解升级包 |
| 34 | + memseyt(cmd, 0, sizeof(cmd)); | ||
| 35 | + sprintf(cmd, "tar -xvf %s -C %s", REMOTE_UPGRADE_FILE_DIR, UPGRADE_FILE_DIR); | ||
| 36 | + ret = JZsdk_RunSystemCmd(cmd); | ||
| 37 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 30 | { | 38 | { |
| 31 | - | 39 | + JZSDK_LOG_ERROR("Upgrade_PackageParse: RunSystemCmd failed"); |
| 40 | + return ret; | ||
| 32 | } | 41 | } |
| 42 | + | ||
| 43 | + //解析升级包 | ||
| 44 | + //首先分析本机的升级包 | ||
| 45 | + unsigned char upgrade_file_name[128] = {0}; | ||
| 33 | 46 | ||
| 34 | - //2、分析是否存在其他模块的升级包 | ||
| 35 | 47 | ||
| 36 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | 48 | return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; |
| 37 | } | 49 | } |
| @@ -66,7 +78,7 @@ T_JZsdkReturnCode Upgrade_Init() | @@ -66,7 +78,7 @@ T_JZsdkReturnCode Upgrade_Init() | ||
| 66 | 78 | ||
| 67 | //检查是否还存在升级包 | 79 | //检查是否还存在升级包 |
| 68 | 80 | ||
| 69 | - | 81 | + // |
| 70 | } | 82 | } |
| 71 | 83 | ||
| 72 | 84 |
| @@ -19,7 +19,7 @@ extern "C" { | @@ -19,7 +19,7 @@ extern "C" { | ||
| 19 | /* Exported constants --------------------------------------------------------*/ | 19 | /* Exported constants --------------------------------------------------------*/ |
| 20 | /* 常亮定义*/ | 20 | /* 常亮定义*/ |
| 21 | #include "JZsdkLib.h" | 21 | #include "JZsdkLib.h" |
| 22 | -#include "./AudioFile_Param.h" | 22 | +#include "./AudioMange_Param.h" |
| 23 | 23 | ||
| 24 | /* Exported types ------------------------------------------------------------*/ | 24 | /* Exported types ------------------------------------------------------------*/ |
| 25 | 25 |
Module/Megaphone/Megaphone_Param.h
已删除
100644 → 0
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
| 11 | #include "AudioDeal/AudioDealThread/AudioDealThread.h" | 11 | #include "AudioDeal/AudioDealThread/AudioDealThread.h" |
| 12 | #include "./AudioFile_PlayDeal.h" | 12 | #include "./AudioFile_PlayDeal.h" |
| 13 | 13 | ||
| 14 | -#include "./AudioMange.h" | 14 | +#include "Megaohone/AudioMange/AudioMange.h" |
| 15 | #include "Megaphone/Megaphone.h" | 15 | #include "Megaphone/Megaphone.h" |
| 16 | 16 | ||
| 17 | #define AUDIO_DIR "/root/sdcard/audio" | 17 | #define AUDIO_DIR "/root/sdcard/audio" |
| @@ -571,7 +571,7 @@ T_JZsdkReturnCode AudioFile_SaveAudioFileStart(char *FileName) | @@ -571,7 +571,7 @@ T_JZsdkReturnCode AudioFile_SaveAudioFileStart(char *FileName) | ||
| 571 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | 571 | return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; |
| 572 | } | 572 | } |
| 573 | 573 | ||
| 574 | - g_AudioFile_SaveAudioFile_NameFp = fopen(SAVE_FILE_DIR, "w"); | 574 | + g_AudioFile_SaveAudioFile_NameFp = fopen(SAVE_FILE_DIR, "wb"); |
| 575 | if (g_AudioFile_SaveAudioFile_NameFp == NULL) | 575 | if (g_AudioFile_SaveAudioFile_NameFp == NULL) |
| 576 | { | 576 | { |
| 577 | JZSDK_LOG_INFO("上传audio文件创建失败"); | 577 | JZSDK_LOG_INFO("上传audio文件创建失败"); |
Module/Megaphone/opus/OpusFile/OpusFile.c
0 → 100644
| 1 | +#include <stdio.h> | ||
| 2 | +#include <stdlib.h> | ||
| 3 | +#include <string.h> | ||
| 4 | +#include <pthread.h> | ||
| 5 | +#include <dirent.h> | ||
| 6 | +#include <sys/stat.h> | ||
| 7 | + | ||
| 8 | +#include "JZsdkLib.h" | ||
| 9 | +#include "Megaphone/AudioMange/AudioMange.h" | ||
| 10 | + | ||
| 11 | +#define OPUS_DIR "/root/sdcard/opus" | ||
| 12 | + | ||
| 13 | +//创建一个opus节点 | ||
| 14 | +static struct AudioMange_Node *g_OpusList = NULL; | ||
| 15 | +static struct AudioMange_Node *g_OpusListtail = NULL; // 用于跟踪链表的尾部 | ||
| 16 | + | ||
| 17 | +static int g_OpusListNum = 0; //用于记录链表中的节点数量 | ||
| 18 | +static int g_OpusList_CurrentNum = 0; //用于记录链表中当前节点位置 | ||
| 19 | + | ||
| 20 | +/********* | ||
| 21 | + * | ||
| 22 | + * opus文件链表注销 | ||
| 23 | + * | ||
| 24 | +**********/ | ||
| 25 | +static T_JZsdkReturnCode OpusFile_FreeAudioList() | ||
| 26 | +{ | ||
| 27 | + //清空尾部指针 | ||
| 28 | + g_OpusListtail = NULL; | ||
| 29 | + | ||
| 30 | + //清空歌曲数量 | ||
| 31 | + g_OpusListNum = 0; //记录链表中一共有几首歌 | ||
| 32 | + g_OpusList_CurrentNum = 0; //记录播放当前第几首歌 | ||
| 33 | + | ||
| 34 | + //释放掉整个链表 | ||
| 35 | + Jzsdk_Free_AndioMange_Node(&g_OpusList); | ||
| 36 | + | ||
| 37 | + g_OpusList = NULL; | ||
| 38 | + | ||
| 39 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 40 | +} | ||
| 41 | + | ||
| 42 | +/********* | ||
| 43 | + * | ||
| 44 | + * opus文件链表刷新 | ||
| 45 | + * | ||
| 46 | +**********/ | ||
| 47 | +T_JZsdkReturnCode OpusFile_FlushList() | ||
| 48 | +{ | ||
| 49 | + //读取audio文件夹,并将歌曲名放入音频列表 | ||
| 50 | + DIR *dir; | ||
| 51 | + struct dirent *entry; | ||
| 52 | + struct stat fileStat; | ||
| 53 | + | ||
| 54 | + //创建一个临时opus节点 | ||
| 55 | + struct AudioMange_audio_struct OpusInfo; | ||
| 56 | + T_JZsdkReturnCode ret; | ||
| 57 | + | ||
| 58 | + //检查是否存在opus文件夹,没有则创建一个 | ||
| 59 | + if(JZsdk_check_directory_exists_posix(OPUS_DIR) != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 60 | + { | ||
| 61 | + JZSDK_LOG_ERROR("不存在opus文件夹,创建一个"); | ||
| 62 | + JZsdk_Osal_Mkdir(OPUS_DIR); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + //确定音频文件夹存在 | ||
| 66 | + if ((dir = opendir(OPUS_DIR)) == NULL) | ||
| 67 | + { | ||
| 68 | + JZSDK_LOG_ERROR("音频文件夹获取失败"); | ||
| 69 | + return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER; | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + //查看歌曲存放链表是否有注册过 | ||
| 73 | + if (g_OpusList != NULL) | ||
| 74 | + { | ||
| 75 | + OpusFile_FreeAudioList(); | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + | ||
| 79 | + while ((entry = readdir(dir)) != NULL) | ||
| 80 | + { | ||
| 81 | + const unsigned char *filename = entry->d_name; | ||
| 82 | + unsigned int fileSize; | ||
| 83 | + int len = strlen(filename); | ||
| 84 | + | ||
| 85 | + // // 获取文件状态信息,包括大小 | ||
| 86 | + // if (stat(filename, &fileStat) == 0) | ||
| 87 | + // { | ||
| 88 | + // fileSize = (unsigned long long)fileStat.st_size; | ||
| 89 | + // } | ||
| 90 | + // else | ||
| 91 | + // { | ||
| 92 | + // JZSDK_LOG_ERROR("%s文件信息获取错误",filename); | ||
| 93 | + // fileSize = 0; | ||
| 94 | + // continue; | ||
| 95 | + // } | ||
| 96 | + | ||
| 97 | + // 跳过目录和隐藏文件,并检查文件扩展名 | ||
| 98 | + if (entry->d_type != DT_DIR && strcmp(filename, ".") != 0 && strcmp(filename, "..") != 0) | ||
| 99 | + { | ||
| 100 | + //printf("获取到%s\n",filename); | ||
| 101 | + | ||
| 102 | + // 检查后缀 | ||
| 103 | + if (JZsdk_strings_suffix_comparison_withLen((const unsigned char *)filename, len, (const unsigned char *)".opus") == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 104 | + { | ||
| 105 | + // 处理文件 | ||
| 106 | + memset(&OpusInfo, 0, sizeof(OpusInfo)); // 清除audioInfo结构 | ||
| 107 | + | ||
| 108 | + //写入文件名 | ||
| 109 | + strncpy(OpusInfo.FileName, entry->d_name, JZSDK_FILENAME_SIZE); | ||
| 110 | + | ||
| 111 | + unsigned char fileDir [256]; | ||
| 112 | + snprintf(fileDir, sizeof(fileDir), "/root/sdcard/opus/%s", filename); | ||
| 113 | + | ||
| 114 | + //写入文件大小 | ||
| 115 | + JZsdk_Fs_ReadFileSize(fileDir, &(OpusInfo.FileSize)); | ||
| 116 | + | ||
| 117 | + //根据文件大小写入时长信息 | ||
| 118 | + //int temp_time = (OpusInfo.FileSize * 8) / (16000 * 16 * 1); #这条是pcm算时长,超准确 | ||
| 119 | + int temp_time = (OpusInfo.FileSize * 8) / (16000); | ||
| 120 | + OpusInfo.Time = temp_time; | ||
| 121 | + | ||
| 122 | + //写入文件名长度 | ||
| 123 | + OpusInfo.FileNameLen = len; | ||
| 124 | + | ||
| 125 | + // 创建新节点 | ||
| 126 | + struct AudioMange_Node *newNode = NULL; | ||
| 127 | + ret = Jzsdk_Create_AndioMange_Node(&newNode, OpusInfo); | ||
| 128 | + if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS) | ||
| 129 | + { | ||
| 130 | + JZSDK_LOG_ERROR("存放音乐 %s 失败", entry->d_name); | ||
| 131 | + continue; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + // 将新节点添加到链表末尾 | ||
| 135 | + Jzsdk_AddAudioNodeToCircularList(&g_OpusList, &g_OpusListtail, &newNode); | ||
| 136 | + | ||
| 137 | + // 歌曲计数+1 | ||
| 138 | + g_OpusListNum++; | ||
| 139 | + } | ||
| 140 | + } | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + closedir(dir); | ||
| 144 | + | ||
| 145 | + //设置默认播放歌曲 | ||
| 146 | + g_OpusList_CurrentNum = 0; | ||
| 147 | + | ||
| 148 | + //打印一遍已加载的音乐 | ||
| 149 | + JZsdk_PrintfAuidoNode_AudioList(g_OpusList); | ||
| 150 | + | ||
| 151 | + JZSDK_LOG_INFO("刷新opus列表已完成"); | ||
| 152 | + | ||
| 153 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 154 | +} | ||
| 155 | + | ||
| 156 | + | ||
| 157 | + | ||
| 158 | + | ||
| 159 | + | ||
| 160 | + | ||
| 161 | + | ||
| 162 | + | ||
| 163 | + | ||
| 164 | +/********* | ||
| 165 | + * | ||
| 166 | + * opus文件初始化 | ||
| 167 | + * | ||
| 168 | +**********/ | ||
| 169 | +T_JZsdkReturnCode Megaphone_OpusFile_Init() | ||
| 170 | +{ | ||
| 171 | + //刷新opus列表 | ||
| 172 | + OpusFile_FlushList(); | ||
| 173 | +} |
| 1 | +#include <stdio.h> | ||
| 2 | +#include "JZsdkLib.h" | ||
| 3 | + | ||
| 4 | +static int g_OpusFile_SaveLen = 0; | ||
| 5 | +static FILE *g_OpusFile_SaveFp = NULL; | ||
| 6 | +static int g_OpusFile_SaveFlag = JZ_FLAGCODE_OFF; | ||
| 7 | + | ||
| 8 | +#define OPUS_FILE_DIR "/root/sdcard/opus" | ||
| 9 | +#define OPUS_TEMP_SAVE_DIR "/root/opusFileTemp.opus" | ||
| 10 | +static unsigned char opus_SaveFile[128]; | ||
| 11 | + | ||
| 12 | +/****************** | ||
| 13 | + * | ||
| 14 | + * | ||
| 15 | + * 开始存储opus文件 | ||
| 16 | + * | ||
| 17 | + * | ||
| 18 | + * **********************/ | ||
| 19 | +T_JZsdkReturnCode OpusFile_SaveOpusFileStart(unsigned char *FileName) | ||
| 20 | +{ | ||
| 21 | + g_OpusFile_SaveLen = 0; | ||
| 22 | + | ||
| 23 | + memset(opus_SaveFile, 0, sizeof(opus_SaveFile)); | ||
| 24 | + sprintf(opus_SaveFile, "%s/%s",OPUS_FILE_DIR, FileName); | ||
| 25 | + | ||
| 26 | + JZSDK_LOG_INFO("上传的opus文件存储路径为:%s", opus_SaveFile); | ||
| 27 | + | ||
| 28 | + if (g_OpusFile_SaveFp != NULL) | ||
| 29 | + { | ||
| 30 | + JZSDK_LOG_ERROR("要保存的opus文件已经打开,请先关闭保存功能"); | ||
| 31 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + g_OpusFile_SaveFp = fopen(OPUS_TEMP_SAVE_DIR, "wb"); | ||
| 35 | + if (g_OpusFile_SaveFp == NULL) | ||
| 36 | + { | ||
| 37 | + JZSDK_LOG_ERROR("打开opus文件失败"); | ||
| 38 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + g_OpusFile_SaveFlag = JZ_FLAGCODE_ON; | ||
| 42 | + | ||
| 43 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +/****************** | ||
| 47 | + * | ||
| 48 | + * | ||
| 49 | + * 存储opus流中 | ||
| 50 | + * | ||
| 51 | + * | ||
| 52 | + * **********************/ | ||
| 53 | +T_JZsdkReturnCode OpusFile_SaveOpusFileStream(unsigned char *Stream, int StreamLen) | ||
| 54 | +{ | ||
| 55 | + if (g_OpusFile_SaveFlag == JZ_FLAGCODE_OFF) | ||
| 56 | + { | ||
| 57 | + JZSDK_LOG_ERROR("没有打开opus文件保存功能"); | ||
| 58 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + if (g_OpusFile_SaveFp == NULL) | ||
| 62 | + { | ||
| 63 | + JZSDK_LOG_ERROR("要保存的opus文件未打开"); | ||
| 64 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + fseek(g_OpusFile_SaveFp, g_OpusFile_SaveLen, SEEK_SET); | ||
| 68 | + int writeLen = fwrite(Stream, 1, StreamLen, g_OpusFile_SaveFp); | ||
| 69 | + if (writeLen != StreamLen) | ||
| 70 | + { | ||
| 71 | + JZSDK_LOG_ERROR("opus文件写入失败"); | ||
| 72 | + return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE; | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + g_OpusFile_SaveLen += StreamLen; | ||
| 76 | + | ||
| 77 | + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS; | ||
| 78 | +} | ||
| 79 | + | ||
| 80 | +/****************** | ||
| 81 | + * | ||
| 82 | + * | ||
| 83 | + * 结束存储opus文件 | ||
| 84 | + * | ||
| 85 | + * | ||
| 86 | + * **********************/ | ||
| 87 | +T_JZsdkReturnCode OpusFile_SaveOpusFileEnd() |
-
请 注册 或 登录 后发表评论