if (!isPlayerInit) {
await TrackPlayer.setupPlayer();
setIsPlayerInit(true);
}
if (currentTrack && currentTrack !== audioUri) {
await TrackPlayer.stop();
}
await TrackPlayer.add({
id: id,
url: audioUri,
title: 'Audio Track',
artist: 'Unknown artist',
});
await TrackPlayer.play();
setCurrentTrack(audioUri);
} catch (error) {
console.error('Error playing audio:', error);
}
};
const pauseAudio = async () => {
try {
await TrackPlayer.pause();
} catch (error) {
console.error('Error pausing audio:', error);
}
};
return (
<View style={{flex: 1}}>
<FlatList
data={audioData}
keyExtractor={item => item._id}
renderItem={({item}) => (
<View style={{margin: 10}}>
<Text>{item.title}</Text>
{currentTrack !== item.audioUri ? (
<Button
title="Play"
onPress={() => startAudio(item.audioUri, item._id)}
/>
) : (
<Button title="Pause" onPress={pauseAudio} />
)}
</View>
)}
/>
</View>
);
}
добрый день не меняется аудио при клике на другое аудио в списке как можно исправить ?
setCurrentTrack не должен быть до play?
и там ещё новое аудио добавляется в воспроизведение через add метод я не знаю что это за либа, но по-моему сам метод гласит о добавлении аудио в плейлист а не установку текущего для проигрывания
Это раз. Во вторых я бы вынес логику play в useEffect чтобы при изменении currentTrack стартовало аудио.
там вообще весь хендлер грязненький) но там судя по всему весь проект такой, поэтому можно и не пытаться😁
Обсуждают сегодня