* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-04-07 18:15:53\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-20 10:17:35\r
+ * @LastEditTime: 2024-10-19 17:07:09\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/countdown/include/MainCountDownPresenter.h\r
*/\r
#ifndef MAIN_COUNTDOWN_PRESENTER_H\r
#include "Presenter.h"\r
#include "MainCountDownView.h"\r
#include "ui_resource_string.h"\r
+#include "ModelListenerSample.h"\r
/*倒计时的主界面*/\r
namespace OHOS\r
{\r
public UIView::OnDragListener,\r
UITimePicker::SelectedListener,\r
public UICheckBox::OnChangeListener,\r
- public RootView::OnKeyActListener\r
+ public RootView::OnKeyActListener,\r
+ public ModelListenerSample\r
{\r
public:\r
MainCountDownPresenter();\r
bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
bool OnChange(UICheckBox::UICheckBoxState state) override;\r
void OnTimePickerStoped(UITimePicker &picker) override;\r
+ void Notify() override;\r
\r
std::string countdowntime{0};\r
std::string ringtime{0};\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-04-07 18:15:53\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-10-11 16:17:52\r
+ * @LastEditTime: 2024-10-20 11:49:21\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/countdown/src/CountDownModel.cpp\r
*/\r
#include "countdown/include/CountDownModel.h"\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CountDownModel] Player url:%s", uri.c_str());\r
playerCtr->SetSource(*source);\r
/* --------------------------------- 4.配置播放器 -------------------------------- */\r
- playerCtr->SetAudioStreamType(AUDIO_STREAM_MUSIC); // 设置播放器的音频流类型\r
+ playerCtr->SetAudioStreamType(AUDIO_STREAM_NOTIFICATION_SYSTEM); // 设置播放器的音频流类型\r
playerCtr->Prepare(); // 准备播放器对象以播放音频。\r
/* -------------------------------- 5.请求音频焦点 -------------------------------- */\r
AudioManager &amIntance = AudioManager::GetInstance();\r
return OHOS_FAILURE;\r
}\r
playerInterruptListener->SetOwner(playerCtr);\r
- interrupt = {AUDIO_STREAM_MUSIC, sessionId, playerInterruptListener};\r
+ interrupt = {AUDIO_STREAM_NOTIFICATION_SYSTEM, sessionId, playerInterruptListener};\r
// 激活音频中断 5s超时\r
if (amIntance.ActivateAudioInterrupt(interrupt) == INTERRUPT_FAILED)\r
{\r
playerCtr->SetAudioSessionId(sessionId);\r
// 播放\r
playerCtr->Play();\r
+ playerCtr->EnableSingleLooping(true); // 设置是否循环播放\r
return OHOS_SUCCESS;\r
}\r
\r
}\r
}\r
}\r
- else\r
- {\r
- if (p_StartCountDownView)\r
- {\r
- // 更新显示\r
- p_StartCountDownView->GetShowCountDownTimelabel()->SetText(CountDownModel::GetInstance()->DisplayCountDownDuration());\r
- }\r
- }\r
+ // else\r
+ // {\r
+ // if (p_StartCountDownView)\r
+ // {\r
+ // // 更新显示\r
+ // p_StartCountDownView->GetShowCountDownTimelabel()->SetText(CountDownModel::GetInstance()->DisplayCountDownDuration());\r
+ // }\r
+ // }\r
\r
return;\r
}\r
void CountDownRingPlayerCallbackImpl::OnPlaybackComplete(void)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnPlaybackComplete");\r
- CountDownModel::GetInstance()->RequestStopRingtone();\r
- CountDownModel::GetInstance()->RequestStartRingtone();\r
+ // CountDownModel::GetInstance()->RequestStopRingtone();\r
+ // CountDownModel::GetInstance()->RequestStartRingtone();\r
}\r
\r
void CountDownRingPlayerCallbackImpl::OnError(int32_t errorType, int32_t errorCode)\r
CountDownModel::GetInstance()->SetCountDownTime(picker.GetSelectValue()); // 设置倒计时时间\r
CountDownModel::GetInstance()->SetRingTime(picker.GetSelectValue()); // 设置响铃时间\r
}\r
+ void MainCountDownPresenter::Notify()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCountDownPresenter::Notify");\r
+ if(CountDownModel::GetInstance()->CountDownTimerIsEnd()) // 倒计时timer已经停止直接退出不刷新\r
+ {\r
+ return;\r
+ }\r
+ StartCountDownView *p_StartCountDownView = StartCountDownView::GetInstance();\r
+ if (p_StartCountDownView && p_StartCountDownView->GetShowCountDownTimelabel())\r
+ {\r
+ // 更新显示\r
+ p_StartCountDownView->GetShowCountDownTimelabel()->SetText(CountDownModel::GetInstance()->DisplayCountDownDuration());\r
+ }\r
+ }\r
}
\ No newline at end of file