From 624f11c743a05d4318c7c07388a41c1a7fdbb5a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B6=E6=98=A5=E9=BE=99?= Date: Tue, 12 Aug 2025 15:04:06 +0800 Subject: [PATCH 1/3] add SetVolume to ringtonePlayer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陶春龙 --- .../ringtone_player/ringtone_player_impl.cpp | 19 +++++++++++ .../ringtone_player/ringtone_player_impl.h | 1 + .../src/ringtone_player_unit_test.cpp | 32 +++++++++++++++++++ .../include/ringtone_player.h | 11 +++++++ 4 files changed, 63 insertions(+) diff --git a/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.cpp b/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.cpp index aa40c3d4d..9aa9a6ae2 100644 --- a/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.cpp +++ b/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.cpp @@ -634,6 +634,25 @@ int32_t RingtonePlayerImpl::SetRingtoneHapticsRamp(int32_t duration, float start return result; } +int32_t RingtonePlayerImpl::SetVolume(float volume) +{ + MEDIA_LOGI("RingtonePlayerImpl::SetVolume %{public}f", volume); + + std::lock_guard lock(playerMutex_); + CHECK_AND_RETURN_RET_LOG(ringtoneState_ != STATE_RELEASED, MSERR_INVALID_OPERATION, + "ringtone player has been released."); + CHECK_AND_RETURN_RET_LOG(player_ != nullptr && ringtoneState_ != STATE_INVALID, MSERR_INVALID_VAL, "no player_"); + + if (volume < 0.0f || volume > 1.0f) { + MEDIA_LOGE("SetVolume: the volume value is invalid."); + return MSERR_INVALID_VAL; + } + + int32_t result = player_->SetVolume(volume); + CHECK_AND_RETURN_RET_LOG(result == MSERR_OK, result, "RingtonePlayerImpl::SetVolume error"); + return result; +} + // Callback class symbols RingtonePlayerCallback::RingtonePlayerCallback(RingtonePlayerImpl &ringtonePlayerImpl) : ringtonePlayerImpl_(ringtonePlayerImpl) {} diff --git a/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.h b/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.h index 607179348..fd00a6c62 100644 --- a/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.h +++ b/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.h @@ -53,6 +53,7 @@ public: const std::shared_ptr &interruptCallback) override; int32_t SetRingtoneHapticsFeature(const RingtoneHapticsFeature &feature) override; int32_t SetRingtoneHapticsRamp(int32_t duration, float startIntensity, float endIntensity) override; + int32_t SetVolume(float volume) override; private: void InitPlayer(std::string &audioUri, ToneHapticsSettings &settings, AudioHapticPlayerOptions options); diff --git a/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp b/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp index b2fab1146..2a1ce9cb1 100644 --- a/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp +++ b/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp @@ -522,5 +522,37 @@ HWTEST(RingtonePlayerUnitTest, Media_RingtonePlayer_019, TestSize.Level1) // test all params ok EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, ringtonePlayerImpl_->SetRingtoneHapticsRamp(1000, 50.0f, 90.0f)); } + +/** + * @tc.name : Test MediaRingtonePlayer + * @tc.number: Media_RingtonePlayer_020 + * @tc.desc : Test SetVolume. Returns set result. + */ +HWTEST(RingtonePlayerUnitTest, Media_RingtonePlayer_020, TestSize.Level1) +{ + auto context_ = std::make_shared(); + auto sysSoundMgr = std::make_shared(); + RingtoneType type = RINGTONE_TYPE_SIM_CARD_0; + auto ringtonePlayerImpl_ = std::make_shared(context_, *sysSoundMgr, type); + int32_t sourceId = 1; + AudioHapticPlayerOptions options = {false, false}; + auto player = ringtonePlayerImpl_->audioHapticManager_->CreatePlayer(sourceId, options); + + ringtonePlayerImpl_->ringtoneState_ = STATE_RELEASED; + EXPECT_EQ(ringtonePlayerImpl_->SetVolume(0.50f), MSERR_INVALID_OPERATION); + + ringtonePlayerImpl_->ringtoneState_ = STATE_INVALID; + EXPECT_EQ(ringtonePlayerImpl_->SetVolume(0.50f), MSERR_INVALID_VAL); + + ringtonePlayerImpl_->player_ = player; + EXPECT_EQ(ringtonePlayerImpl_->SetVolume(0.50f), MSERR_INVALID_VAL); + + ringtonePlayerImpl_->ringtoneState_ = STATE_NEW; + // test volume less than 0.0f + EXPECT_EQ(MSERR_INVALID_VAL, ringtonePlayerImpl_->SetVolume(-1.0f)); + // test volume larger than 1.0f + EXPECT_EQ(MSERR_INVALID_VAL, ringtonePlayerImpl_->SetVolume(1.1f)); + // test valid volume + EXPECT_NE(MSERR_OK, ringtonePlayerImpl_->SetVolume(0.5f)); } } diff --git a/interfaces/inner_api/native/system_sound_manager/include/ringtone_player.h b/interfaces/inner_api/native/system_sound_manager/include/ringtone_player.h index 142490fb4..ac8d2efc2 100644 --- a/interfaces/inner_api/native/system_sound_manager/include/ringtone_player.h +++ b/interfaces/inner_api/native/system_sound_manager/include/ringtone_player.h @@ -160,6 +160,17 @@ public: * @version 1.0 */ virtual int32_t SetRingtoneHapticsRamp(int32_t duration, float startIntensity, float endIntensity) = 0; + + /** + * @brief Set the ringtone player audio's volume + * + * @param volume. start intensity, value range [0.00f, 1.00f] + * @return Returns {@link MSERR_OK} if the audio's volume set successfully; + * returns an error code defined in {@link media_errors.h} otherwise. + * @since 1.0 + * @version 1.0 + */ + virtual int32_t SetVolume(float volume) = 0; }; -- Gitee From bf91917965ee41375662c949c4cfe8cbcfc9d418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B6=E6=98=A5=E9=BE=99?= Date: Wed, 13 Aug 2025 22:01:57 +0800 Subject: [PATCH 2/3] fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陶春龙 --- .../ringtone_player/ringtone_player_impl.cpp | 19 ----------- .../ringtone_player/ringtone_player_impl.h | 1 - .../src/ringtone_player_unit_test.cpp | 33 ------------------- .../include/audio_haptic_manager.h | 4 +-- .../include/ringtone_player.h | 11 ------- 5 files changed, 2 insertions(+), 66 deletions(-) diff --git a/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.cpp b/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.cpp index 9aa9a6ae2..aa40c3d4d 100644 --- a/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.cpp +++ b/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.cpp @@ -634,25 +634,6 @@ int32_t RingtonePlayerImpl::SetRingtoneHapticsRamp(int32_t duration, float start return result; } -int32_t RingtonePlayerImpl::SetVolume(float volume) -{ - MEDIA_LOGI("RingtonePlayerImpl::SetVolume %{public}f", volume); - - std::lock_guard lock(playerMutex_); - CHECK_AND_RETURN_RET_LOG(ringtoneState_ != STATE_RELEASED, MSERR_INVALID_OPERATION, - "ringtone player has been released."); - CHECK_AND_RETURN_RET_LOG(player_ != nullptr && ringtoneState_ != STATE_INVALID, MSERR_INVALID_VAL, "no player_"); - - if (volume < 0.0f || volume > 1.0f) { - MEDIA_LOGE("SetVolume: the volume value is invalid."); - return MSERR_INVALID_VAL; - } - - int32_t result = player_->SetVolume(volume); - CHECK_AND_RETURN_RET_LOG(result == MSERR_OK, result, "RingtonePlayerImpl::SetVolume error"); - return result; -} - // Callback class symbols RingtonePlayerCallback::RingtonePlayerCallback(RingtonePlayerImpl &ringtonePlayerImpl) : ringtonePlayerImpl_(ringtonePlayerImpl) {} diff --git a/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.h b/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.h index fd00a6c62..607179348 100644 --- a/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.h +++ b/frameworks/native/system_sound_manager/ringtone_player/ringtone_player_impl.h @@ -53,7 +53,6 @@ public: const std::shared_ptr &interruptCallback) override; int32_t SetRingtoneHapticsFeature(const RingtoneHapticsFeature &feature) override; int32_t SetRingtoneHapticsRamp(int32_t duration, float startIntensity, float endIntensity) override; - int32_t SetVolume(float volume) override; private: void InitPlayer(std::string &audioUri, ToneHapticsSettings &settings, AudioHapticPlayerOptions options); diff --git a/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp b/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp index 2a1ce9cb1..d50b9eade 100644 --- a/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp +++ b/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp @@ -522,37 +522,4 @@ HWTEST(RingtonePlayerUnitTest, Media_RingtonePlayer_019, TestSize.Level1) // test all params ok EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, ringtonePlayerImpl_->SetRingtoneHapticsRamp(1000, 50.0f, 90.0f)); } - -/** - * @tc.name : Test MediaRingtonePlayer - * @tc.number: Media_RingtonePlayer_020 - * @tc.desc : Test SetVolume. Returns set result. - */ -HWTEST(RingtonePlayerUnitTest, Media_RingtonePlayer_020, TestSize.Level1) -{ - auto context_ = std::make_shared(); - auto sysSoundMgr = std::make_shared(); - RingtoneType type = RINGTONE_TYPE_SIM_CARD_0; - auto ringtonePlayerImpl_ = std::make_shared(context_, *sysSoundMgr, type); - int32_t sourceId = 1; - AudioHapticPlayerOptions options = {false, false}; - auto player = ringtonePlayerImpl_->audioHapticManager_->CreatePlayer(sourceId, options); - - ringtonePlayerImpl_->ringtoneState_ = STATE_RELEASED; - EXPECT_EQ(ringtonePlayerImpl_->SetVolume(0.50f), MSERR_INVALID_OPERATION); - - ringtonePlayerImpl_->ringtoneState_ = STATE_INVALID; - EXPECT_EQ(ringtonePlayerImpl_->SetVolume(0.50f), MSERR_INVALID_VAL); - - ringtonePlayerImpl_->player_ = player; - EXPECT_EQ(ringtonePlayerImpl_->SetVolume(0.50f), MSERR_INVALID_VAL); - - ringtonePlayerImpl_->ringtoneState_ = STATE_NEW; - // test volume less than 0.0f - EXPECT_EQ(MSERR_INVALID_VAL, ringtonePlayerImpl_->SetVolume(-1.0f)); - // test volume larger than 1.0f - EXPECT_EQ(MSERR_INVALID_VAL, ringtonePlayerImpl_->SetVolume(1.1f)); - // test valid volume - EXPECT_NE(MSERR_OK, ringtonePlayerImpl_->SetVolume(0.5f)); -} } diff --git a/interfaces/inner_api/native/audio_haptic/include/audio_haptic_manager.h b/interfaces/inner_api/native/audio_haptic/include/audio_haptic_manager.h index 9d75ac03c..4c7c47704 100644 --- a/interfaces/inner_api/native/audio_haptic/include/audio_haptic_manager.h +++ b/interfaces/inner_api/native/audio_haptic/include/audio_haptic_manager.h @@ -27,8 +27,8 @@ namespace OHOS { namespace Media { struct AudioHapticFileDescriptor { int32_t fd = -1; - int64_t length; - int64_t offset; + int64_t length = 0; + int64_t offset = 0; }; class AudioHapticManager { diff --git a/interfaces/inner_api/native/system_sound_manager/include/ringtone_player.h b/interfaces/inner_api/native/system_sound_manager/include/ringtone_player.h index ac8d2efc2..142490fb4 100644 --- a/interfaces/inner_api/native/system_sound_manager/include/ringtone_player.h +++ b/interfaces/inner_api/native/system_sound_manager/include/ringtone_player.h @@ -160,17 +160,6 @@ public: * @version 1.0 */ virtual int32_t SetRingtoneHapticsRamp(int32_t duration, float startIntensity, float endIntensity) = 0; - - /** - * @brief Set the ringtone player audio's volume - * - * @param volume. start intensity, value range [0.00f, 1.00f] - * @return Returns {@link MSERR_OK} if the audio's volume set successfully; - * returns an error code defined in {@link media_errors.h} otherwise. - * @since 1.0 - * @version 1.0 - */ - virtual int32_t SetVolume(float volume) = 0; }; -- Gitee From 3d7498b4c7a498b281fb070ceff9b5d312f1fd2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B6=E6=98=A5=E9=BE=99?= Date: Wed, 13 Aug 2025 22:04:03 +0800 Subject: [PATCH 3/3] fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 陶春龙 --- .../ringtone_player_test/src/ringtone_player_unit_test.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp b/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp index d50b9eade..b2fab1146 100644 --- a/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp +++ b/frameworks/native/system_sound_manager/unittest/ringtone_player_test/src/ringtone_player_unit_test.cpp @@ -523,3 +523,4 @@ HWTEST(RingtonePlayerUnitTest, Media_RingtonePlayer_019, TestSize.Level1) EXPECT_EQ(ERR_OPERATE_NOT_ALLOWED, ringtonePlayerImpl_->SetRingtoneHapticsRamp(1000, 50.0f, 90.0f)); } } +} -- Gitee