Installation

Install

Flutter Sound is a regular Flutter plugin. For help on adding a Flutter plugin as a dependency, view the Flutter documentation.

SDK requirements

  • Flutter Sound requires an iOS 10.0 SDK (or later)
  • Flutter Sound requires an Android 21 (or later)

Linking your App directly from pub.dev

Add flutter_sound as a dependency in pubspec.yaml.

The actual version is : 9.x. A version 10.0 is currentely being developped. See Taudio, downside.

dependencies:
  flutter:
    sdk: flutter
  flutter_sound: ^9.23

Linking your App with Flutter Sound sources (optional)

The Flutter-Sound sources are here. It is a subproject of tau

You probably want to look to the Dev notice

cd /some/where
git clone --recursive https://github.com/canardoux/tau
cd /some/where/tau
bin/reldev.sh DEV

and add your dependency in your pubspec.yaml :

dependencies:
  flutter:
    sdk: flutter
  flutter_sound:
    path: /some/where/tau/flutter_sound

FFmpeg

From version 9.x, Flutter Sound does not depend anymore on Flutter FFmpeg. If the App needs to do some audio conversions, it must depend itself on Flutter FFmpeg and include the apropriate interface.

Flutter FFmpeg is really great. Huge but great. It can help you to handle sound files. Flutter Sound is for playing or recording. Not to manipulate sound files.

Post Installation

  • On iOS you may need to add usage descriptions to info.plist:

          <key>UIBackgroundModes</key>
          <array>
                  <string>audio</string>
          </array>
          <key>NSMicrophoneUsageDescription</key>
          <string>MyApp uses the microphone to record your speech and convert it to text.</string>
    

If your App needs to play remote files you possibly must add :

       <key>NSAppTransportSecurity</key>
       <dict>
               <key>NSAllowsArbitraryLoads</key>
               <true/>
       </dict>
  • On Android you need to add a permission to AndroidManifest.xml:

    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    

Flutter Web

From version 9.x, the app does not need anymore to include the Flutter Sound library in its ‘index.html’.

Troubles shooting

Problem with Cocoapods

If you get this message (specially after the release of a new Flutter Version) :

Cocoapods could not find compatible versions for pod ...

you can try the following instructions sequence (and ignore if some commands gives errors) :

cd ios
pod cache clean --all
rm Podfile.lock
rm -rf .symlinks/
cd ..
flutter clean
flutter pub get
cd ios
pod update
pod repo update
pod install --repo-update
pod update
pod install
cd ..

If everything good, the last pod install must not give any error.

If you get this strange message from the Xcode linker :

Undefined symbols for architecture arm64:
"___gxx_personality_v0",

Just add those 2 flags in XCode > Build Settings > Other Linker Flags :

-lc++
-lstd++