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 ответов

25 просмотров

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

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

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

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

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

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
12
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта