diff --git a/packages/griffith/src/components/Controller/Controller.js b/packages/griffith/src/components/Controller/Controller.js index 0fdecfd9..28c84b43 100644 --- a/packages/griffith/src/components/Controller/Controller.js +++ b/packages/griffith/src/components/Controller/Controller.js @@ -332,6 +332,13 @@ class Controller extends Component { /> )} {!hiddenQualityMenu && } + {showPip && } + {!hiddenFullScreenButton && ( + + )} {!hiddenVolumeItem && ( )} - {showPip && } - {!hiddenFullScreenButton && ( - - )} ) } diff --git a/packages/griffith/src/components/Player/Player.js b/packages/griffith/src/components/Player/Player.js index 90ff575f..b125c3b8 100644 --- a/packages/griffith/src/components/Player/Player.js +++ b/packages/griffith/src/components/Player/Player.js @@ -11,6 +11,7 @@ import * as icons from '../Icon/icons/display' import Loader from '../Loader' import Video from '../Video' import Controller from '../Controller' +import VolumeItem from '../Controller/items/VolumeItem' import {MinimalTimeline} from '../Timeline' import getBufferedTime from '../../utils/getBufferedTime' import storage from '../../utils/storage' @@ -444,6 +445,7 @@ class Player extends Component { onEvent, useMSE, useAutoQuality, + alwaysShowVolumeButton, disablePictureInPicture, progressDots, hiddenPlayButton, @@ -474,6 +476,8 @@ class Player extends Component { const isFullScreen = Boolean(BigScreen.element) && !isPip const showController = this.getShowController(this.state) const bufferedTime = getBufferedTime(currentTime, buffered) + const videoDataLoaded = !isLoading || currentTime !== 0 + const renderController = videoDataLoaded && isPlaybackStarted return (
)} {/*首帧已加载完成时展示 MinimalTimeline 组件*/} - {!hiddenTimeline && isPlaying && (!isLoading || currentTime !== 0) && ( + {!hiddenTimeline && isPlaying && videoDataLoaded && (
)} + {/* 右下角外显常驻音量按钮控件,与 Controller 互斥展示 */} + {alwaysShowVolumeButton && renderController && ( +
+ +
+ )} {/*首帧已加载完成时展示 Controller 组件*/} - {isPlaybackStarted && (!isLoading || currentTime !== 0) && ( + {renderController && (
( @@ -73,6 +74,7 @@ const PlayerContainer = ({ hiddenQualityMenu={hiddenQualityMenu} hiddenVolumeItem={hiddenVolume} hiddenFullScreenButton={hiddenFullScreenButton} + alwaysShowVolumeButton={alwaysShowVolumeButton} progressDots={progressDots} standalone={standalone} cover={cover}