flutter/lib/utils/audio_player_service.dart

58 lines
1.3 KiB
Dart
Raw Normal View History

2025-08-21 10:50:38 +08:00
import 'package:audioplayers/audioplayers.dart';
import 'package:loopin/IM/im_core.dart';
class AudioPlayerService {
static final AudioPlayerService _instance = AudioPlayerService._internal();
factory AudioPlayerService() => _instance;
AudioPlayerService._internal();
final AudioPlayer _audioPlayer = AudioPlayer();
/// 播放本地文件
Future<void> playLocal(String filePath) async {
try {
await _audioPlayer.setSourceDeviceFile(filePath);
await _audioPlayer.resume();
} catch (e) {
logger.e('播放本地音频失败: $e');
}
}
/// 播放网络音频
Future<void> playNetwork(String url) async {
try {
await _audioPlayer.setSourceUrl(url);
await _audioPlayer.resume();
} catch (e) {
logger.e('播放网络音频失败: $e');
}
}
/// 暂停播放
Future<void> pause() async {
try {
await _audioPlayer.pause();
} catch (e) {
logger.e('暂停播放失败: $e');
}
}
/// 停止播放
Future<void> stop() async {
try {
await _audioPlayer.stop();
} catch (e) {
logger.e('停止播放失败: $e');
}
}
/// 释放资源
Future<void> dispose() async {
try {
await _audioPlayer.dispose();
} catch (e) {
logger.e('释放播放器失败: $e');
}
}
}