0

私の作品のスクリーンショット

"react-native": "0.66.4", react-native-sound": "^0.11.1",

ユーザーが1つのアイテムをクリックするたびに、他のボタンの音楽を防ぎたい、

sound.reset() - これをelseメソッド内で使用すると、次のようなエラーに直面しています: TypeError: sound.reset is not a function. (「sound.reset()」では、「sound.reset」は未定義です)

///play music function when user click on a specific item
// Play a music
  const playSound = ({item, index}) => {
    for (var i = 0; i < items.length; i++) {
      if (item.id === items[i].id) {
        sound = new Sound(item.uri, error => {
          if (error) {
            console.log('failed to load the sound', error);
            return;
          }
          // loaded successfully
          // setTimeout(() => stopFunction(), 3000);

          const stopFunction = () => {
            sound.release();
            sound.reset();
          };

          sound.play(success => {
            if (success) {
              console.log('successfully finished playing');
              // Release when it's done so we're not using up resources
              sound.release();
            } else {
              console.log('playback failed due to audio decoding errors');
            }
          });
        });
      } else {
        sound.reset();
        // sound.stop();
      }
    }
  };
/// main function 
<FlatGrid
        itemDimension={90}
        data={items}
        style={styles.gridView}
        // staticDimension={300}
        // fixed
        spacing={5}
        renderItem={({item, index, data}) => {
          return (
            <TouchableOpacity
              style={styles.itemContainer}
              activeOpacity={0.3}
              onPress={() => {
                playSound({item, index});
              }}>
              <Text style={styles.itemName}>{item.title}</Text>
            </TouchableOpacity>
          );
        }}
      />
4

0 に答える 0