169 похожих чатов

Const startAudio = async (audioUri, id) => {     try {      

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>
  );
}


добрый день не меняется аудио при клике на другое аудио в списке как можно исправить ?

4 ответов

57 просмотров

setCurrentTrack не должен быть до play?

и там ещё новое аудио добавляется в воспроизведение через add метод я не знаю что это за либа, но по-моему сам метод гласит о добавлении аудио в плейлист а не установку текущего для проигрывания

whyamsx
setCurrentTrack не должен быть до play?

Это раз. Во вторых я бы вынес логику play в useEffect чтобы при изменении currentTrack стартовало аудио.

Rasul Kakushev
Это раз. Во вторых я бы вынес логику play в useEff...

там вообще весь хендлер грязненький) но там судя по всему весь проект такой, поэтому можно и не пытаться😁

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта