stop audio & go back to home
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { useFocusEffect } from '@react-navigation/native'
|
||||
import useSharedAudioPlayer from '../../hooks/useSharedAudioPlayer'
|
||||
import * as FileSystem from 'expo-file-system'
|
||||
import { VideoView, useVideoPlayer } from 'expo-video'
|
||||
@@ -40,13 +41,21 @@ const RecordedPlayback = ({ route }) => {
|
||||
// Start both players on mount
|
||||
const stopPlayback = useCallback(async () => {
|
||||
try {
|
||||
if (audioPlayer?.playing) await audioPlayer.pause?.()
|
||||
if (audioPlayer) await audioPlayer.pause?.()
|
||||
} catch (e) { }
|
||||
try {
|
||||
if (videoPlayer?.playing) videoPlayer.pause()
|
||||
videoPlayer?.pause?.()
|
||||
} catch (e) { }
|
||||
}, [audioPlayer, videoPlayer])
|
||||
|
||||
useFocusEffect(
|
||||
useCallback(() => {
|
||||
return () => {
|
||||
void stopPlayback()
|
||||
}
|
||||
}, [stopPlayback])
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
playbackEndedRef.current = false
|
||||
const start = async () => {
|
||||
@@ -213,7 +222,10 @@ const RecordedPlayback = ({ route }) => {
|
||||
<View style={{ width: '80%', alignSelf: 'center', marginTop: 4, gap: 12 }}>
|
||||
<GradientButton
|
||||
title="Je valide"
|
||||
onPress={() => {
|
||||
onPress={async () => {
|
||||
try {
|
||||
await stopPlayback()
|
||||
} catch (e) { }
|
||||
navigate(Routes.PlaybackDownload, {
|
||||
action: 'playback',
|
||||
uri: videoUri,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { useFocusEffect } from '@react-navigation/native'
|
||||
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { Image, Pressable, Text, View } from 'react-native'
|
||||
import { background, icons } from '../../assets'
|
||||
@@ -54,7 +55,7 @@ const RecordedPlayback = ({ route }) => {
|
||||
|
||||
const stopPlayback = useCallback(async () => {
|
||||
try {
|
||||
if (audioPlayer?.playing) await audioPlayer.pause?.()
|
||||
if (audioPlayer) await audioPlayer.pause?.()
|
||||
} catch { }
|
||||
try {
|
||||
if (videoElRef.current && !videoElRef.current.paused) {
|
||||
@@ -63,6 +64,14 @@ const RecordedPlayback = ({ route }) => {
|
||||
} catch { }
|
||||
}, [audioPlayer])
|
||||
|
||||
useFocusEffect(
|
||||
useCallback(() => {
|
||||
return () => {
|
||||
void stopPlayback()
|
||||
}
|
||||
}, [stopPlayback])
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
return () => {
|
||||
if (!shouldPreserveBlobRef.current) {
|
||||
@@ -363,8 +372,11 @@ const RecordedPlayback = ({ route }) => {
|
||||
>
|
||||
<GradientButton
|
||||
title="Je valide"
|
||||
onPress={() => {
|
||||
onPress={async () => {
|
||||
shouldPreserveBlobRef.current = true
|
||||
try {
|
||||
await stopPlayback()
|
||||
} catch { }
|
||||
navigate(Routes.PlaybackDownload, {
|
||||
action: 'playback',
|
||||
uri: videoUri || null, // peut être null sur web
|
||||
|
||||
@@ -152,6 +152,7 @@ const PlaybackDownload = ({ route }) => {
|
||||
const [isDownloading, setIsDownloading] = useState(false)
|
||||
const [hasAcceptedPublication, setHasAcceptedPublication] = useState(true)
|
||||
const hasShownAfterPlaybackRef = useRef(false)
|
||||
const publishSuccessMessage = action === 'playback' ? 'Playback publié !' : 'Chanson publiée !'
|
||||
|
||||
const afterPlaybackUrl = useMemo(() => {
|
||||
if (!videos) return null
|
||||
@@ -333,15 +334,11 @@ const PlaybackDownload = ({ route }) => {
|
||||
return
|
||||
}
|
||||
if (!project?.id) {
|
||||
if (action === 'playback') {
|
||||
setTooltip({
|
||||
type: 'success',
|
||||
text: 'Playback publié !',
|
||||
})
|
||||
navigate(Routes.Home)
|
||||
} else {
|
||||
navigate(Routes.SongRelease, { action })
|
||||
}
|
||||
setTooltip({
|
||||
type: 'success',
|
||||
text: publishSuccessMessage,
|
||||
})
|
||||
navigate(Routes.Home)
|
||||
return
|
||||
}
|
||||
let tempSourcePath = null
|
||||
@@ -402,15 +399,11 @@ const PlaybackDownload = ({ route }) => {
|
||||
{ merge: true }
|
||||
)
|
||||
|
||||
if (action === 'playback') {
|
||||
setTooltip({
|
||||
type: 'success',
|
||||
text: 'Playback publié !',
|
||||
})
|
||||
navigate(Routes.Home)
|
||||
} else {
|
||||
navigate(Routes.SongRelease, { action })
|
||||
}
|
||||
setTooltip({
|
||||
type: 'success',
|
||||
text: publishSuccessMessage,
|
||||
})
|
||||
navigate(Routes.Home)
|
||||
} catch (error) {
|
||||
console.log('[PlaybackDownload] publish error', {
|
||||
message: error?.message,
|
||||
|
||||
Reference in New Issue
Block a user