chore: add logs to useaudiotrack

This commit is contained in:
Adrian Castro
2024-03-07 11:16:07 +01:00
parent c9222b0760
commit fd1928c43d

View File

@@ -12,32 +12,40 @@ export const useAudioTrack = () => {
const synchronizePlayback = useCallback( const synchronizePlayback = useCallback(
async (selectedAudioTrack?: AudioTrack, stream?: Stream) => { async (selectedAudioTrack?: AudioTrack, stream?: Stream) => {
console.log("synchronizePlayback called");
if (selectedAudioTrack && stream) { if (selectedAudioTrack && stream) {
console.log("Loading audio track", selectedAudioTrack.uri);
const { uri } = selectedAudioTrack; const { uri } = selectedAudioTrack;
const sound = new Audio.Sound(); const { sound } = await Audio.Sound.createAsync({
await sound.loadAsync({ // never resolves or rejects :(
uri, uri,
headers: { headers: {
...stream.headers, ...stream.headers,
...stream.preferredHeaders, ...stream.preferredHeaders,
}, },
}); });
console.log("Audio track loaded");
setAudioObject(sound); setAudioObject(sound);
} else { } else {
if (audioObject) { if (audioObject) {
console.log("Unloading existing audio track");
await audioObject.unloadAsync(); await audioObject.unloadAsync();
setAudioObject(null); setAudioObject(null);
} }
} }
if (videoRef && audioObject) { if (videoRef && audioObject) {
console.log("Synchronizing audio with video");
const videoStatus = await videoRef.getStatusAsync(); const videoStatus = await videoRef.getStatusAsync();
if (selectedAudioTrack && videoStatus.isLoaded) { if (selectedAudioTrack && videoStatus.isLoaded) {
console.log("Muting video and starting audio playback");
await videoRef.setIsMutedAsync(true); await videoRef.setIsMutedAsync(true);
await audioObject.setPositionAsync(videoStatus.positionMillis); await audioObject.setPositionAsync(videoStatus.positionMillis);
await audioObject.playAsync(); await audioObject.playAsync();
} else { } else {
console.log("Unmuting video");
await videoRef.setIsMutedAsync(false); await videoRef.setIsMutedAsync(false);
} }
} }