aem_adapter_media.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #ifndef AEM_ADAPTER_MEDIA_H
  2. #define AEM_ADAPTER_MEDIA_H
  3. #include <stdint.h>
  4. #include <string.h>
  5. #include <stdbool.h>
  6. #if CONFIG_MEDIA
  7. #include <media_player.h>
  8. #include <media_mem.h>
  9. #include "media_type.h"
  10. #endif
  11. #define AEM_MEDIA_EVENT_CNT 3
  12. typedef enum
  13. {
  14. AEM_MEDIA_TYPE_NONE,
  15. AEM_MEDIA_TYPE_TTS,
  16. AEM_MEDIA_TYPE_MUSIC,
  17. AEM_MEDIA_TYPE_BT_MUSIC,
  18. AEM_MEDIA_TYPE_BT_CALL,
  19. } aem_media_type_e;
  20. typedef enum
  21. {
  22. AEM_MEDIA_STATE_CLOSE,
  23. AEM_MEDIA_STATE_OPEN,
  24. AEM_MEDIA_STATE_PLAY,
  25. AEM_MEDIA_STATE_STOP,
  26. AEM_MEDIA_STATE_STOP_COMPLETE,
  27. AEM_MEDIA_STATE_ERROR,
  28. } aem_media_state_e;
  29. typedef struct {
  30. int total_time; /* total time in milliseconds */
  31. int avg_bitrate; /* average bit reate in kbps */
  32. int sample_rate; /* sample rate in Hz */
  33. int channels; /* channels */
  34. unsigned int file_hdr_len; /* file header(tags) length */
  35. } aem_media_info_t;
  36. typedef void (*aem_media_event_cb)(aem_media_type_e type, aem_media_state_e state);
  37. int aem_adapter_media_play(aem_media_type_e type, char *path, uint32_t time);
  38. void aem_adapter_media_stop(void);
  39. int aem_adapter_media_time_offset(void);
  40. aem_media_state_e aem_adapter_media_get_state(void);
  41. aem_media_type_e aem_adapter_media_get_type(void);
  42. aem_media_info_t * aem_adapter_media_info(void);
  43. void aem_adapter_media_set_volume(aem_media_type_e type, int volume);
  44. void aem_adapter_media_register_cb(aem_media_event_cb event_cb);
  45. /**
  46. * @Description : 获取音乐文件类型
  47. * @Param : path:音乐文件完整路径
  48. * @Return : 音乐文件类型
  49. **/
  50. uint8_t aem_adapter_get_file_type(const char *path);
  51. #endif /* AEM_ADAPTER_MEDIA_H */