#ifndef AEM_ADAPTER_MEDIA_H #define AEM_ADAPTER_MEDIA_H #include #include #include #if CONFIG_MEDIA #include #include #include "media_type.h" #endif #define AEM_MEDIA_EVENT_CNT 3 typedef enum { AEM_MEDIA_TYPE_NONE, AEM_MEDIA_TYPE_TTS, AEM_MEDIA_TYPE_MUSIC, AEM_MEDIA_TYPE_BT_MUSIC, AEM_MEDIA_TYPE_BT_CALL, } aem_media_type_e; typedef enum { AEM_MEDIA_STATE_CLOSE, AEM_MEDIA_STATE_OPEN, AEM_MEDIA_STATE_PLAY, AEM_MEDIA_STATE_STOP, AEM_MEDIA_STATE_STOP_COMPLETE, AEM_MEDIA_STATE_ERROR, } aem_media_state_e; typedef struct { int total_time; /* total time in milliseconds */ int avg_bitrate; /* average bit reate in kbps */ int sample_rate; /* sample rate in Hz */ int channels; /* channels */ unsigned int file_hdr_len; /* file header(tags) length */ } aem_media_info_t; typedef void (*aem_media_event_cb)(aem_media_type_e type, aem_media_state_e state); int aem_adapter_media_play(aem_media_type_e type, char *path, uint32_t time); void aem_adapter_media_stop(void); int aem_adapter_media_time_offset(void); aem_media_state_e aem_adapter_media_get_state(void); aem_media_type_e aem_adapter_media_get_type(void); aem_media_info_t * aem_adapter_media_info(void); void aem_adapter_media_set_volume(aem_media_type_e type, int volume); void aem_adapter_media_register_cb(aem_media_event_cb event_cb); /** * @Description : 获取音乐文件类型 * @Param : path:音乐文件完整路径 * @Return : 音乐文件类型 **/ uint8_t aem_adapter_get_file_type(const char *path); #endif /* AEM_ADAPTER_MEDIA_H */