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}