Search code examples
react-native-track-player

TrackPlayer.add method is not Working in React-native-track-player


  useEffect(() => {
    try {
      const voiceover = parseOrGet(item.scenes[selectedIndex].voiceover);
      voiceover["title"]="test"
      voiceover["artist"]="test"
      voiceover["id"]="2"
      voiceover["artwork"]="https://url_to_artwork.jpg"
      delete voiceover.metadata
      delete voiceover.name
      delete voiceover.type
      console.log(voiceover)
      if (voiceover) {
        TrackPlayer.add(voiceover);
        TrackPlayer.play();
        setSelectedTrack(voiceover);
      }else{
        TrackPlayer.destroy();
      }
    } catch (error) {
      console.log('my initial error', error);
    }
  }, [selectedIndex]);

here i am adding trackplayer voice over but i can not listen voiceover music it is not workinhg

this is the my voice over object

{"artist": "test", "artwork": "https://url_to_artwork.jpg", "id": 1, "title": "test", "url": "https://d3bm2z03a5d1kp.cloudfront.net/hindi-narration/1.mp3"}

let mw know where i am doing wrong


Solution

  • Try to change from

    if (voiceover) {
      TrackPlayer.add(voiceover);
      TrackPlayer.play();
      setSelectedTrack(voiceover);
    } else {
      TrackPlayer.destroy();
    }
    

    to

    if (voiceover) {
      await TrackPlayer.add(voiceover);
      await TrackPlayer.play();
      setSelectedTrack(voiceover);
    } else {
      await TrackPlayer.destroy();
    }
    

    And define your function as useEffect(async () => ....)