RNSound.IsAndroid错误(React Native)

ARP*_*ETY 7 android react-native

得到这个错误 - undefined不是一个对象(评估RNSound.IsAndroid)

我已经使用过this-react-native link react-native-sound

my index.android.js code is-

import React from 'react';
import { TouchableWithoutFeedback, Text } from 'react-native';
import Sound from 'react-native-sound';

class MyComponent extends Component {
  playSound() {
    const mySound = new Sound('x.mp3', Sound.MAIN_BUNDLE, (e) => {
      if (e) {
        console.log('error', e);
      } else {
        console.log('duration', mySound.getDuration());
        mySound.play();
      }
    });
  }

  render() {
    return (
      <TouchableWithoutFeedback onPress={this.playSound.bind(this)}>
         <Text>Play Sound!</Text>
      </TouchableWithoutFeedback>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

kab*_*ius 5

大多数情况下,此错误意味着包未正确链接。

要确认是否是这种情况:-

  1. android/app/src/main/java/.../MainApplication.java
  2. 确保您在此文件中有此导入 import com.zmxv.RNSound.RNSoundPackage;
  3. 确保此方法具有此调用new RNSoundPackage(),如下所示。

    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new RNSoundPackage() // <-- New
        );
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 如果这不起作用,请按照此处 wiki 中描述的手动过程进行操作:https : //github.com/zmxv/react-native-sound/wiki/Installation