Skip to content

Commit b06168e

Browse files
authored
Move more playback code to rust (#42)
2 parents 6bbda45 + 4f7a781 commit b06168e

13 files changed

+1427
-514
lines changed

lib/native/api/player.dart

+21-1
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,18 @@ import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
1010

1111
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<AnnixPlayer>>
1212
abstract class AnnixPlayer implements RustOpaqueInterface {
13+
Future<void> addProvider(
14+
{required String url, required String auth, required int priority});
15+
16+
Future<void> clearProvider();
17+
1318
bool isPlaying();
1419

15-
factory AnnixPlayer() => RustLib.instance.api.crateApiPlayerAnnixPlayerNew();
20+
factory AnnixPlayer({required String cachePath}) =>
21+
RustLib.instance.api.crateApiPlayerAnnixPlayerNew(cachePath: cachePath);
22+
23+
Future<void> open(
24+
{required String identifier, required AudioQuality quality});
1625

1726
Future<void> openFile({required String path});
1827

@@ -26,11 +35,22 @@ abstract class AnnixPlayer implements RustOpaqueInterface {
2635

2736
Future<void> seek({required int position});
2837

38+
Future<void> setTrack(
39+
{required String identifier, required AudioQuality quality});
40+
2941
Future<void> setVolume({required double volume});
3042

3143
Future<void> stop();
3244
}
3345

46+
enum AudioQuality {
47+
low,
48+
medium,
49+
high,
50+
lossless,
51+
;
52+
}
53+
3454
enum PlayerStateEvent {
3555
/// Started playing
3656
play,

0 commit comments

Comments
 (0)