android - 单击一定数量后,React-Native 声音剪辑停止工作

标签 android audio react-native

我正在使用 react-native-sound 库。我有一个按钮调用一个函数来播放一个简短的声音文件。播放声音文件 15 次后,即使加载了函数,声音也不再播放。

以下是我的功能代码:

  playSound() {
    var s = new Sound('soundfile.mp3', Sound.MAIN_BUNDLE, (e) => {
      if (e) {
        console.log('error', e);
      } else {
        console.log('duration', s.getDuration());
        s.play()
      }
    });

  }

这是怎么回事,我该如何解决这个问题?

最佳答案

原因是因为所有的资源都被用完了。您应该在使用完音频资源后释放它们。

 playSound() {
    var s = new Sound('soundfile.mp3', Sound.MAIN_BUNDLE, (e) => {
      if (e) {
        console.log('error', e);
      } else {
        console.log('duration', s.getDuration());
        s.play(()=>{
                s.release()
        })
      }
    });

  }

此外,您可以重复使用 Sound 实例,而不是每次都重新创建一个新资源。

关于android - 单击一定数量后,React-Native 声音剪辑停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41196649/

相关文章:

android - 避开间隙并放置图像

audio - 如何编写脚本来使用应用程序

react-native - 将 Android 应用程序连接到没有互联网访问权限的 wifi

javascript - 将 props 发送到 @react-navigation/drawer 组件

ios - 在提供的路径中找不到应用程序包... ":CFBundleIdentifier",不存在

android - PageAsyncTask endHandler 更新调用页面

android - TYPE_ACCELEROMETER 和 TYPE_MAGNETIC_FIELD 类型如何用于在 Android 设备上制作指南针

android - 如果 Activity 被销毁,我可以从 Activity 调用静态方法吗?

objective-c - Flac 转换器 Objective-C?

audio - 带librosa的音频缓冲区