Flutter闹钟播放插件alarmplayer的使用

发布于 1周前 作者 eggper 来自 Flutter

Flutter闹钟播放插件alarmplayer的使用

alarmplayer

alarmplayer 是一个非常简单的的插件,用于播放声音并设置自己的音量,这样你可以在手机静音模式下播放重要的闹钟。

开始使用

要使用这个插件:

  1. 添加依赖到你的Flutter项目:
flutter pub add alarmplayer

或者

dependencies:
  alarmplayer: ^newest
  1. 在代码中添加以下导入:
import 'package:alarmplayer/alarmplayer.dart';

使用示例

  1. 创建一个 Alarmplayer 实例
//...
Alarmplayer alarmplayer = Alarmplayer();
//...
  1. 播放闹钟。
alarmplayer.Alarm(
  url: "assets/alarm.mp3", // 声音文件路径
  volume: 0.5,            // 可选,设置音量,默认为1.0
  looping: true             // 可选,是否循环播放闹钟
  callback: ()              // 这是回调函数,如果闹钟播放完成会执行。注意如果你的闹钟设置了循环播放,那么回调函数不会被执行
  => {print("i'm done!")},   // 如果闹钟播放完成,将打印“我完成了!”
);
  1. 停止闹钟。
alarmplayer.stop();         // 停止闹钟。
  1. 判断闹钟是否正在播放。
alarmplayer.IsPlaying();    // 返回一个布尔值,表示闹钟是否正在播放。

更多关于Flutter闹钟播放插件alarmplayer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter闹钟播放插件alarmplayer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用alarm_player插件来播放闹钟铃声的示例代码。这个插件允许你在指定的时间播放声音,非常适合用于闹钟应用。

首先,确保你的Flutter项目已经添加了alarm_player依赖。在pubspec.yaml文件中添加以下依赖:

dependencies:
  flutter:
    sdk: flutter
  alarm_player: ^x.y.z  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

接下来,是一个简单的示例代码,展示如何使用alarm_player插件来设置并播放闹钟铃声。

import 'package:flutter/material.dart';
import 'package:alarm_player/alarm_player.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: AlarmScreen(),
    );
  }
}

class AlarmScreen extends StatefulWidget {
  @override
  _AlarmScreenState createState() => _AlarmScreenState();
}

class _AlarmScreenState extends State<AlarmScreen> {
  late AlarmPlayer _alarmPlayer;

  @override
  void initState() {
    super.initState();
    _alarmPlayer = AlarmPlayer();
    // 初始化AlarmPlayer,可以在这里处理权限请求等初始化工作
    _initializeAlarmPlayer();
  }

  @override
  void dispose() {
    _alarmPlayer.dispose();
    super.dispose();
  }

  Future<void> _initializeAlarmPlayer() async {
    // 这里可以添加检查权限、请求权限等逻辑
    // ...

    // 初始化完成后,可以设置一个示例闹钟
    _setAlarm();
  }

  void _setAlarm() {
    // 设置一个5秒后触发的闹钟(仅作为示例)
    DateTime alarmTime = DateTime.now().add(Duration(seconds: 5));
    String alarmSoundPath = 'assets/alarm_sound.mp3'; // 确保在pubspec.yaml中声明了assets

    _alarmPlayer.setAlarm(
      at: alarmTime,
      android: AndroidAlarmConfig(
        sound: Uri.parse(alarmSoundPath),
        repeating: false, // 是否重复
      ),
      ios: IOSAlarmConfig(
        sound: Uri.parse(alarmSoundPath),
        repeating: false, // iOS不支持直接设置重复,但可以通过其他方式实现
      ),
    ).then((_) {
      print('Alarm set for: $alarmTime');
    }).catchError((error) {
      print('Failed to set alarm: $error');
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Alarm Player Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Alarm will play in 5 seconds (demo purpose)'),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 这里可以再次调用_setAlarm()来设置新的闹钟,或者添加取消闹钟的逻辑
                // _cancelAlarm();
              },
              child: Text('Set/Reset Alarm'),
            ),
          ],
        ),
      ),
    );
  }

  // 可选:添加取消闹钟的方法
  // void _cancelAlarm() {
  //   _alarmPlayer.cancelAlarm().then((_) {
  //     print('Alarm canceled');
  //   }).catchError((error) {
  //     print('Failed to cancel alarm: $error');
  //   });
  // }
}

注意:

  1. pubspec.yaml中声明assets资源,例如:
    flutter:
      assets:
        - assets/alarm_sound.mp3
    
  2. 确保你的Android和iOS项目已经配置了播放音频所需的权限。
  3. 由于iOS和Android在音频播放和闹钟机制上的差异,你可能需要根据平台特性做一些调整。

这个示例代码展示了如何使用alarm_player插件来设置一个简单的闹钟。在实际应用中,你可能需要添加更多的逻辑来处理用户交互、权限请求、错误处理等。

回到顶部