Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

bailabs/ringtone_player

Open more actions menu
 
 

Repository files navigation

ringtone_player

A player for system default ringtone, alarm and notification.

Pub Version

Installation

Add following dependencies to your pubspec.yaml:

dependencies:
  ringtone_player: ^0.1.1 #latest version

Usage

Add following import to your code:

import 'package:ringtone_player/ringtone_player.dart';

Then simply call this to play system default notification sound:

RingtonePlayer.ringtone();

There's also this generic method allowing you to specify in detail what kind of ringtone should be played:

RingtonePlayer.play(
  alarmMeta: AlarmMeta(
    'dev.cruv.ringtone_player_example.MainActivity',
    'ic_alarm_notification',
    contentTitle: 'Alarm',
    contentText: 'Alarm is active',
    subText: 'Subtext',
  ),
  android: Android.ringtone,
  ios: Ios.electronic,
  loop: true, // Android only - API >= 28
  volume: 1.0, // Android only - API >= 28
  alarm: true, // Android only - all APIs
);

.play() optional attributes

Attribute Description
bool loop Enables loop of ringtone. If Requires
double volume Sets ringtone volume in range 0 to 1.0.
bool alarm Allows to ignore device's silent/vibration mode and play given sound anyway.

To stop looped ringtone please use:

RingtonePlayer.stop();

Above works only on Android, and please note that by default Alarm & Ringtone sounds are looped.

Default sounds

Method Android iOS
alarm System#DEFAULT_ALARM_ALERT_URI Ios.alarm
notification System#DEFAULT_NOTIFICATION_URI Ios.triTone
ringtone System#DEFAULT_RINGTONE_URI Ios.electronic

Note for AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="dev.cruv.ringtone_player_example">

    <!-- Must add this line -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <!-- -->

    <application
        android:icon="@mipmap/ic_launcher"
        android:label="Ringtone_player_example"
        tools:ignore="AllowBackup">

        <!-- Must add this line -->
        <service android:name="dev.cruv.ringtone_player.PlayerService" />
        <!-- -->

        <activity>...</activity>
        ...
    </application>
</manifest>

Note on iOS sound

If you want to use any other sound on iOS you can always specify a valid Sound ID and manually construct [IosSound]:

RingtonePlayer.play(
  android: Android.notification,
  ios: const IosSound(1023),
  looping: true,
  volume: 0.1,
);

License

MIT License

About

A player for system default ringtone, alarm and notification.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.