2

In my app I have a feature that plays a sound when a message is received it will notify the user by playing a sound file, the app works using react-native-sound fine in Android but in iOS I keep getting this error:

enter image description here

Code I am using for initializing the sound:

import Sound from "react-native-sound"

// Load the sound file 'whoosh.mp3' from the app bundle
// See notes below about preloading sounds within initialization code below.
var message_received = new Sound(require("../../res/audio/Page_Turn.mp3"), Sound.MAIN_BUNDLE, (error) => {
    if (error) {
      console.log('failed to load the sound', error);
      return;
    }
    // loaded successfully
    console.log('duration in seconds: ' + message_received.getDuration() + 'number of channels: ' + message_received.getNumberOfChannels());
});

The method that I call after initializing sound file:

message_received.play()

Does anyone know how to solve this?

6
  • 1
    from react-native-sound doc: iOS: Open Xcode and add your sound files to the project (Right-click the project and select Add Files to [PROJECTNAME]). Then you can call it like new Sound('Page_Turn.mp3', Commented Jul 10, 2019 at 19:42
  • I did that and still getting same error. Commented Jul 10, 2019 at 19:46
  • the error appears when you do .play() or when you init the sound? Commented Jul 10, 2019 at 19:49
  • 1
    @llario your solution worked thanks! Commented Jul 12, 2019 at 4:14
  • 1
    Great! Can you accept my answer please? :) Commented Jul 12, 2019 at 15:49

2 Answers 2

3
  1. If you use require(filepath), you don't need Sound.MAIN_BUNDLE, the second param is callback:

    new Sound(require("../../res/audio/Page_Turn.mp3"), (error) => {})

  2. play function should be called after initialising successfully

    var message_received = new Sound(require("../../res/audio/Page_Turn.mp3"), (error) => { if (error) { console.log('failed to load the sound', error); return; } // loaded successfully message_received.play() });

  3. Remember to add(references) your .mp3 files into xcode, re-run react-native run-ios.

This code example contains many use-cases: https://github.com/zmxv/react-native-sound-demo/blob/master/main.js

Sign up to request clarification or add additional context in comments.

Comments

2

From react-native-sound doc:

iOS: Open Xcode and add your sound files to the project (Right-click the project and select Add Files to [PROJECTNAME]).

Then you can call it

new Sound('Page_Turn.mp3',

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.