diff --git a/frameworks/bridge/declarative_frontend/engine/jsEnumStyle.js b/frameworks/bridge/declarative_frontend/engine/jsEnumStyle.js index 054e2b03483a042df2e1ab488ed68a0115258c1f..b2701164b899b8221e8066964e2a74b4f3a592b2 100644 --- a/frameworks/bridge/declarative_frontend/engine/jsEnumStyle.js +++ b/frameworks/bridge/declarative_frontend/engine/jsEnumStyle.js @@ -1369,6 +1369,11 @@ let PlaybackSpeed; PlaybackSpeed.Speed_Forward_1_25_X = '1.25'; PlaybackSpeed.Speed_Forward_1_75_X = '1.75'; PlaybackSpeed.Speed_Forward_2_00_X = '2.00'; + PlaybackSpeed.Speed_Forward_0_50_X = '0.50'; + PlaybackSpeed.Speed_Forward_1_50_X = '1.50'; + PlaybackSpeed.Speed_Forward_3_00_X = '3.00'; + PlaybackSpeed.Speed_Forward_0_25_X = '0.25'; + PlaybackSpeed.Speed_Forward_0_125_X = '0.125'; })(PlaybackSpeed || (PlaybackSpeed = {})); let MixedMode; diff --git a/frameworks/core/components_ng/render/adapter/rosen_media_player.cpp b/frameworks/core/components_ng/render/adapter/rosen_media_player.cpp index 1ccbd8513da44a08aade9965179990fdf97c1994..610a1c812a400c30609ea0133c8e1d52c439db2c 100755 --- a/frameworks/core/components_ng/render/adapter/rosen_media_player.cpp +++ b/frameworks/core/components_ng/render/adapter/rosen_media_player.cpp @@ -30,6 +30,11 @@ constexpr float SPEED_1_00_X = 1.00; constexpr float SPEED_1_25_X = 1.25; constexpr float SPEED_1_75_X = 1.75; constexpr float SPEED_2_00_X = 2.00; +constexpr float SPEED_0_50_X = 0.50; +constexpr float SPEED_1_50_X = 1.50; +constexpr float SPEED_3_00_X = 3.00; +constexpr float SPEED_0_25_X = 0.25; +constexpr float SPEED_0_125_X = 0.125; constexpr uint32_t MEDIA_RESOURCE_MATCH_SIZE = 2; const int32_t RAWFILE_PREFIX_LENGTH = strlen("resource://RAWFILE/"); const std::regex MEDIA_RES_ID_REGEX(R"(^resource://\w+/([0-9]+)\.\w+$)", std::regex::icase); @@ -63,8 +68,18 @@ OHOS::Media::PlaybackRateMode ConvertToMediaPlaybackSpeed(float speed) mode = OHOS::Media::PlaybackRateMode::SPEED_FORWARD_1_75_X; } else if (NearEqual(speed, SPEED_2_00_X)) { mode = OHOS::Media::PlaybackRateMode::SPEED_FORWARD_2_00_X; + } else if (NearEqual(speed, SPEED_0_50_X)) { + mode = OHOS::Media::PlaybackRateMode::SPEED_FORWARD_0_50_X; + } else if (NearEqual(speed, SPEED_1_50_X)) { + mode = OHOS::Media::PlaybackRateMode::SPEED_FORWARD_1_50_X; + } else if (NearEqual(speed, SPEED_3_00_X)) { + mode = OHOS::Media::PlaybackRateMode::SPEED_FORWARD_3_00_X; + } else if (NearEqual(speed, SPEED_0_25_X)) { + mode = OHOS::Media::PlaybackRateMode::SPEED_FORWARD_0_25_X; + } else if (NearEqual(speed, SPEED_0_125_X)) { + mode = OHOS::Media::PlaybackRateMode::SPEED_FORWARD_0_125_X; } else { - LOGW("speed is not supported yet."); + LOGW("speed [%{public}f] is not supported yet.", speed); } return mode; }