fix: disable auto play of audio messages on message first load

pull/2328/head
Audric Ackermann 3 years ago
parent 3595efea99
commit 83b44d0abf
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -18,9 +18,10 @@ export const AudioPlayerWithEncryptedFile = (props: {
contentType: string; contentType: string;
messageId: string; messageId: string;
}) => { }) => {
const { messageId, contentType, src } = props;
const dispatch = useDispatch(); const dispatch = useDispatch();
const [playbackSpeed, setPlaybackSpeed] = useState(1.0); const [playbackSpeed, setPlaybackSpeed] = useState(1.0);
const { urlToLoad } = useEncryptedFileFetch(props.src, props.contentType, false); const { urlToLoad } = useEncryptedFileFetch(src, contentType, false);
const player = useRef<H5AudioPlayer | null>(null); const player = useRef<H5AudioPlayer | null>(null);
const autoPlaySetting = useSelector(getAudioAutoplay); const autoPlaySetting = useSelector(getAudioAutoplay);
@ -30,16 +31,19 @@ export const AudioPlayerWithEncryptedFile = (props: {
useEffect(() => { useEffect(() => {
// updates playback speed to value selected in context menu // updates playback speed to value selected in context menu
if (player.current?.audio.current?.playbackRate) { if (
player.current?.audio.current &&
player.current?.audio.current?.playbackRate !== playbackSpeed
) {
player.current.audio.current.playbackRate = playbackSpeed; player.current.audio.current.playbackRate = playbackSpeed;
} }
}, [playbackSpeed, player]); }, [playbackSpeed, player]);
useEffect(() => { useEffect(() => {
if (props.messageId === nextMessageToPlayId) { if (messageId !== undefined && messageId === nextMessageToPlayId) {
player.current?.audio.current?.play(); player.current?.audio.current?.play();
} }
}, [props.messageId, nextMessageToPlayId, player]); }, [messageId, nextMessageToPlayId, player]);
const triggerPlayNextMessageIfNeeded = (endedMessageId: string) => { const triggerPlayNextMessageIfNeeded = (endedMessageId: string) => {
const justEndedMessageIndex = messageProps.findIndex( const justEndedMessageIndex = messageProps.findIndex(
@ -75,8 +79,8 @@ export const AudioPlayerWithEncryptedFile = (props: {
const onEnded = () => { const onEnded = () => {
// if audio autoplay is enabled, call method to start playing // if audio autoplay is enabled, call method to start playing
// the next playable message // the next playable message
if (autoPlaySetting === true && props.messageId) { if (autoPlaySetting === true && messageId) {
triggerPlayNextMessageIfNeeded(props.messageId); triggerPlayNextMessageIfNeeded(messageId);
} }
}; };
@ -87,6 +91,8 @@ export const AudioPlayerWithEncryptedFile = (props: {
style={{ pointerEvents: multiSelectMode ? 'none' : 'inherit' }} style={{ pointerEvents: multiSelectMode ? 'none' : 'inherit' }}
layout="horizontal-reverse" layout="horizontal-reverse"
showSkipControls={false} showSkipControls={false}
autoPlay={false}
autoPlayAfterSrcChange={false}
showJumpControls={false} showJumpControls={false}
showDownloadProgress={false} showDownloadProgress={false}
listenInterval={100} listenInterval={100}

Loading…
Cancel
Save