void InitBtHeadsetEvent(void);\r
void BtAvrcpVolumeChangedSyncMedia(uint8_t a2dp_volume);\r
void user_avrcp_ct_press_button(const bd_addr_t *bd_addr, int32_t key_operation);\r
+void user_avrcp_ct_get_element_attributes(const bd_addr_t *bd_addr);\r
\r
#ifdef __cplusplus\r
}\r
}\r
}\r
}\r
+\r
+void user_avrcp_ct_get_element_attributes(const bd_addr_t *bd_addr)\r
+{\r
+ avrcp_ct_get_element_attr_para_t element_attr_param;\r
+ element_attr_param.attr_num = AVRCP_CT_ELEMENT_ATTR_TRACK_PLAYING_TIME;\r
+ element_attr_param.attr_id_list = (unsigned int *)(void *)malloc(sizeof(unsigned int) * element_attr_param.attr_num);\r
+ for (int i = 0; i < element_attr_param.attr_num; i++) \r
+ {\r
+ element_attr_param.attr_id_list[i] = (unsigned int)i + 1;\r
+ }\r
+ avrcp_ct_get_element_attributes(bd_addr, &element_attr_param);\r
+ if (element_attr_param.attr_id_list != NULL) \r
+ {\r
+ free(element_attr_param.attr_id_list);\r
+ element_attr_param.attr_id_list = NULL;\r
+ }\r
+}\r
/* -------------------------------------------------------------------------- */\r
//记录按下按钮的回调事件以及按键操作值\r
static void BtAvrcpCtPressButtonRspCallback(const bd_addr_t *bd_addr, int32_t key_operation)\r
bool notify_flag = true;\r
switch (event_id) {\r
case AVRCP_NOTIFY_EVENT_PLAYBACK_STATUS_CHANGED: //播放状态变更事件,从播放变为暂停、停止等状态,会触发这个事件\r
- BtAvrcpCtHdlNotifyPlaybackStatusChangedRspCbk(notification);\r
+ // BtAvrcpCtHdlNotifyPlaybackStatusChangedRspCbk(notification);\r
break;\r
case AVRCP_NOTIFY_EVENT_TRACK_CHANGED: //track状态变更事件,切换到下一首、上一首歌曲等情况,会触发此事件\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "track changed event_id:0x%x\n", event_id);\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x \n",\r
bd_addr->addr[3], bd_addr->addr[2], bd_addr->addr[1], bd_addr->addr[0]); /* 3 2 1 0 idx */\r
BtA2dpSnkAudioCreate();\r
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(&OHOS::PlayersModel::set_player_state, OHOS::PlayersModel::GetInstance(),true));\r
+ // PlayersModel::GetInstance()->get_avrcp_ct_get_element_attributes();\r
}\r
\r
static void BtA2dpSnkPlayingStateChangedCb(bd_addr_t *bd_addr, int playing_state)\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "addr: ****%02x%02x%02x%02x playing_state: %x\n",\r
bd_addr->addr[3], bd_addr->addr[2], bd_addr->addr[1], bd_addr->addr[0], playing_state); /* 3 2 1 0 idx */\r
if (playing_state == A2DP_NOT_PLAYING) {\r
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(&OHOS::PlayersModel::set_player_state, OHOS::PlayersModel::GetInstance(),false));\r
BtA2dpSnkAudioDestroy();\r
}\r
}\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-08-05 15:20:03
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-24 17:38:29
+ * @LastEditTime: 2024-09-26 14:21:11
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/player/include/PlayersModel.h
*/
void UpdateVolumeValue(void);
bool get_avrcp_ct_or_tg_is_connected(void);
void set_phone_music_play_state(avrcp_key_operation_t notify);
+ void get_avrcp_ct_get_element_attributes(void);
void set_player_state(bool value);
// /* -------------------------------------------------------------------------- */
std::unordered_map<uint16_t, std::pair<std::string,std::string>> &getIdToMusicNameMap(void);
}
}
+ //获取TG端支持的属性列表,比如歌曲标题,专辑、艺术风格,年份和作曲家等。
+ void PlayersModel::get_avrcp_ct_get_element_attributes(void)
+ {
+ bd_addr_t bdAddr={0};
+ uapi_get_br_address(&bdAddr); //获取手机蓝牙地址
+ user_avrcp_ct_get_element_attributes(&bdAddr);
+ }
+
//设置按钮播放状态
void PlayersModel::set_player_state(bool value)
{