如何在react-native中播放音频文件?主要在android中

时间:2016-11-22 01:40:56

标签: javascript android audio react-native

我正在努力从我的本机应用程序播放音频文件。 我想尝试使用这个包:

react-native-sound

但无法使其正常工作,我收到此错误: 无法读取未定义的属性IsAndroid,它试图在react-native-sound软件包的sound.js第4行中执行:

var RNSound = require('react-native').NativeModules.RNSound; var IsAndroid = RNSound.IsAndroid;

这可能意味着RNSound对象未正确注册。

无论如何,似乎包裹不再被维护了33个问题和8个拉取请求,最后一次提交是4个月前。

那么,你们如何为你的项目添加音频?我正在使用React Native 0.37 btw。

1 个答案:

答案 0 :(得分:4)

好的,基于Nirav Ranpara's 评论和他提供的链接:
https://github.com/zmxv/react-native-sound/issues/36

这些是使用React Native 0.37实现在Android上运行的步骤
1.编辑android / settings.gradle以声明项目目录:

include ':RNSound', ':app'
project(':RNSound').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sound/android')

2。编辑android / app / build.gradle以声明项目依赖项:

   dependencies {
     ...
     compile project(':RNSound')
   }

3。编辑android / app / src / main / java /.../ MainApplication.java以注册本机模块:

注意: MainApplication.java 而不是MainActivity.java

...
import com.zmxv.RNSound.RNSoundPackage;
...

...
@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(), // don't forget your comma
      new RNSoundPackage() // insert this line
  );
}
...

4。在您的应用程序中导入如下:

import { default as Sound } from 'react-native-sound';

注意不要这样做

// wrong
var Sound = require('react-native-sound');

// also wrong
import {Sound} from 'react-native-sound';

注意:步骤1和2与文档相同,而3和4不同。