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 стартовало аудио.
там вообще весь хендлер грязненький) но там судя по всему весь проект такой, поэтому можно и не пытаться😁
Обсуждают сегодня