A Flutter plugin to play streaming audio content with background support and lock screen controls

Radio Player

A Flutter plugin to play streaming audio content with background support and lock screen controls.

Installation

To use this package, add radio_player as a dependency in your pubspec.yaml file.

dependencies:
  radio_player: ^0.2.4

By default iOS forbids loading from non-https url. To cancel this restriction edit your .plist and add:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

If necessary, add permissions to play in the background:

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
    <string>processing</string>
</array>

Only for debug mode in iOS 14+, you will also need the following:

<key>NSBonjourServices</key>
<array>
<string>_dartobservatory._tcp</string>
</array>

Usage

To create RadioPlayer instance, simply call the constructor.

RadioPlayer radioPlayer = RadioPlayer();

Configure it with your data.

radioPlayer.setMediaItem(TITLE, URL, IMAGE?);

Player Controls

radioPlayer.play();
radioPlayer.pause();

State Event

You can use it to show if player playing or paused.

bool isPlaying = false;
//...
radioPlayer.stateStream.listen((value) {
    setState(() { isPlaying = value; });
});

Metadata Event

This Event returns the current metadata.

List<String>? metadata;
//...
radioPlayer.metadataStream.listen((value) {
    setState(() { metadata = value; });
});

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.

GitHub

View Github