Skip to content

Commit a6f89be

Browse files
authored
feat!: expose classes of package audioplayers_platform_interface (#1442)
# Description - move files of `audioplayers_platform_interface` into `src` folder - export files to expose classes in `audioplayers_platform_interface.dart` ## Breaking Change ### Migration instructions Exposed classes in `audioplayers_platform_interface`: Before: ``` import 'package:audioplayers_platform_interface/api/audio_context.dart'; import 'package:audioplayers_platform_interface/api/for_player.dart'; import 'package:audioplayers_platform_interface/api/log_level.dart'; import 'package:audioplayers_platform_interface/api/player_mode.dart'; import 'package:audioplayers_platform_interface/api/player_state.dart'; import 'package:audioplayers_platform_interface/api/release_mode.dart'; import 'package:audioplayers_platform_interface/streams_interface.dart'; import 'package:audioplayers_platform_interface/global_platform_interface.dart'; ``` After: ``` import 'package:audioplayers_platform_interface/audioplayers_platform_interface.dart'; ``` Internal classes in `audioplayers_platform_interface`: Before: ``` import 'package:audioplayers_platform_interface/method_channel_interface.dart'; import 'package:audioplayers_platform_interface/api/audio_context_config.dart'; ``` After: ``` import 'package:audioplayers_platform_interface/src/method_channel_interface.dart'; import 'package:audioplayers_platform_interface/src/api/audio_context_config.dart'; ```
1 parent e59c3b9 commit a6f89be

19 files changed

Lines changed: 164 additions & 161 deletions

getting_started.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,12 +192,12 @@ To configure a player specific Audio Context (if desired), use:
192192

193193
**Note:** As the iOS platform can not handle contexts for each player individually, for convenience this would also set the Audio Context globally.
194194

195-
While each platform has its own set of configurations, they are somewhat related, and you can create them using a unified interface call [`AudioContextConfig`](https://pub.dev/documentation/audioplayers_platform_interface/latest/api_audio_context_config/api_audio_context_config-library.html).
195+
While each platform has its own set of configurations, they are somewhat related, and you can create them using a unified interface call [`AudioContextConfig`](https://pub.dev/documentation/audioplayers_platform_interface/latest/src_api_audio_context_config/src_api_audio_context_config-library.html).
196196
It provides generic abstractions that convey intent, that are then converted to platform specific configurations.
197197

198198
Note that if this process is not perfect, you can create your configuration from scratch by providing exact details for each platform via
199-
[AudioContextAndroid](https://pub.dev/documentation/audioplayers_platform_interface/latest/api_audio_context/AudioContextAndroid-class.html) and
200-
[AudioContextIOS](https://pub.dev/documentation/audioplayers_platform_interface/latest/api_audio_context/AudioContextIOS-class.html).
199+
[AudioContextAndroid](https://pub.dev/documentation/audioplayers_platform_interface/latest/audioplayers_platform_interface/AudioContextAndroid-class.html) and
200+
[AudioContextIOS](https://pub.dev/documentation/audioplayers_platform_interface/latest/audioplayers_platform_interface/AudioContextIOS-class.html).
201201

202202
```dart
203203
player.setAudioContext(AudioContext(

packages/audioplayers/lib/audioplayers.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
export 'package:audioplayers_platform_interface/api/audio_context.dart';
2-
export 'package:audioplayers_platform_interface/api/audio_context_config.dart';
3-
export 'package:audioplayers_platform_interface/api/for_player.dart';
4-
export 'package:audioplayers_platform_interface/api/log_level.dart';
5-
export 'package:audioplayers_platform_interface/api/player_mode.dart';
6-
export 'package:audioplayers_platform_interface/api/player_state.dart';
7-
export 'package:audioplayers_platform_interface/api/release_mode.dart';
8-
export 'package:audioplayers_platform_interface/global_platform_interface.dart';
1+
export 'package:audioplayers_platform_interface/src/api/audio_context.dart';
2+
export 'package:audioplayers_platform_interface/src/api/audio_context_config.dart';
3+
export 'package:audioplayers_platform_interface/src/api/for_player.dart';
4+
export 'package:audioplayers_platform_interface/src/api/log_level.dart';
5+
export 'package:audioplayers_platform_interface/src/api/player_mode.dart';
6+
export 'package:audioplayers_platform_interface/src/api/player_state.dart';
7+
export 'package:audioplayers_platform_interface/src/api/release_mode.dart';
8+
export 'package:audioplayers_platform_interface/src/global_platform_interface.dart';
99

1010
export 'src/audio_cache.dart';
1111
export 'src/audio_pool.dart';

packages/audioplayers/test/audioplayers_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:audioplayers/audioplayers.dart';
2-
import 'package:audioplayers_platform_interface/method_channel_interface.dart';
2+
import 'package:audioplayers_platform_interface/src/method_channel_interface.dart';
33
import 'package:flutter/services.dart';
44
import 'package:flutter_test/flutter_test.dart';
55

Lines changed: 9 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,9 @@
1-
import 'dart:async';
2-
import 'dart:typed_data';
3-
4-
import 'package:audioplayers_platform_interface/api/audio_context.dart';
5-
import 'package:audioplayers_platform_interface/api/for_player.dart';
6-
import 'package:audioplayers_platform_interface/api/player_mode.dart';
7-
import 'package:audioplayers_platform_interface/api/release_mode.dart';
8-
import 'package:audioplayers_platform_interface/method_channel_audioplayers_platform.dart';
9-
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
10-
11-
/// The interface that implementations of audioplayers must implement.
12-
///
13-
/// Platform implementations should extend this class rather than implement it
14-
/// as `audioplayers` does not consider newly added methods to be breaking
15-
/// changes. Extending this class (using `extends`) ensures that the subclass
16-
/// will get the default implementation, while platform implementations that
17-
/// `implements` this interface will be broken by newly added
18-
/// [AudioplayersPlatform] methods.
19-
abstract class AudioplayersPlatform extends PlatformInterface {
20-
AudioplayersPlatform() : super(token: _token);
21-
22-
static final Object _token = Object();
23-
24-
/// The default instance of [AudioplayersPlatform] to use.
25-
///
26-
/// Defaults to [MethodChannelAudioplayersPlatform].
27-
/// Platform-specific plugins should set this with their own platform-specific
28-
/// class that extends [AudioplayersPlatform] when they register themselves.
29-
static AudioplayersPlatform instance = MethodChannelAudioplayersPlatform();
30-
31-
/// Pauses the audio that is currently playing.
32-
///
33-
/// If you call [resume] later, the audio will resume from the point that it
34-
/// has been paused.
35-
Future<void> pause(String playerId);
36-
37-
/// Stops the audio that is currently playing.
38-
///
39-
/// The position is going to be reset and you will no longer be able to resume
40-
/// from the last point.
41-
Future<void> stop(String playerId);
42-
43-
/// Resumes the audio that has been paused or stopped.
44-
Future<void> resume(String playerId);
45-
46-
/// Releases the resources associated with this media player.
47-
///
48-
/// The resources are going to be fetched or buffered again as needed.
49-
Future<void> release(String playerId);
50-
51-
/// Moves the cursor to the desired position.
52-
Future<void> seek(String playerId, Duration position);
53-
54-
/// Sets the stereo balance.
55-
///
56-
/// -1 - The left channel is at full volume; the right channel is silent.
57-
/// 1 - The right channel is at full volume; the left channel is silent.
58-
/// 0 - Both channels are at the same volume.
59-
Future<void> setBalance(String playerId, double balance);
60-
61-
/// Sets the volume (amplitude).
62-
///
63-
/// 0 is mute and 1 is the max volume. The values between 0 and 1 are linearly
64-
/// interpolated.
65-
Future<void> setVolume(String playerId, double volume);
66-
67-
/// Sets the release mode.
68-
///
69-
/// Check [ReleaseMode]'s doc to understand the difference between the modes.
70-
Future<void> setReleaseMode(String playerId, ReleaseMode releaseMode);
71-
72-
/// Sets the playback rate.
73-
///
74-
/// iOS and macOS have limits between 0.5 and 2x
75-
/// Android SDK version should be 23 or higher
76-
Future<void> setPlaybackRate(String playerId, double playbackRate);
77-
78-
/// Configures the player to read the audio from a URL.
79-
///
80-
/// The resources will start being fetched or buffered as soon as you call
81-
/// this method.
82-
Future<void> setSourceUrl(
83-
String playerId,
84-
String url, {
85-
bool? isLocal,
86-
});
87-
88-
/// Configures the play to read the audio from a byte array.
89-
Future<void> setSourceBytes(
90-
String playerId,
91-
Uint8List bytes,
92-
);
93-
94-
Future<void> setAudioContext(
95-
String playerId,
96-
AudioContext audioContext,
97-
);
98-
99-
Future<void> setPlayerMode(
100-
String playerId,
101-
PlayerMode playerMode,
102-
);
103-
104-
/// Returns the duration of the media, in milliseconds, if available.
105-
///
106-
/// Might not be available if:
107-
/// * source has not been set or prepared yet (for remote audios it must be
108-
/// downloaded and buffered first)
109-
/// * source does not support operation (e.g. streams)
110-
/// * otherwise not supported (e.g. LOW_LATENCY mode on Android)
111-
Future<int?> getDuration(String playerId);
112-
113-
/// Returns the current position of playback, in milliseconds, if available.
114-
///
115-
/// Might not be available if:
116-
/// * source has not been set or prepared yet (for remote audios it must be
117-
/// downloaded and buffered first)
118-
/// * source does not support operation (e.g. streams)
119-
/// * otherwise not supported (e.g. LOW_LATENCY mode on Android)
120-
Future<int?> getCurrentPosition(String playerId);
121-
122-
Stream<ForPlayer<Duration>> get positionStream;
123-
124-
Stream<ForPlayer<Duration>> get durationStream;
125-
126-
Stream<ForPlayer<void>> get completeStream;
127-
128-
Stream<ForPlayer<void>> get seekCompleteStream;
129-
}
1+
export 'src/api/audio_context.dart';
2+
export 'src/api/for_player.dart';
3+
export 'src/api/log_level.dart';
4+
export 'src/api/player_mode.dart';
5+
export 'src/api/player_state.dart';
6+
export 'src/api/release_mode.dart';
7+
export 'src/audioplayers_platform_interface.dart';
8+
export 'src/global_platform_interface.dart';
9+
export 'src/streams_interface.dart';

packages/audioplayers_platform_interface/lib/api/audio_context.dart renamed to packages/audioplayers_platform_interface/lib/src/api/audio_context.dart

File renamed without changes.

packages/audioplayers_platform_interface/lib/api/audio_context_config.dart renamed to packages/audioplayers_platform_interface/lib/src/api/audio_context_config.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import 'dart:io' show Platform;
22

3-
import 'package:audioplayers_platform_interface/api/audio_context.dart';
3+
import 'package:audioplayers_platform_interface/src/api/audio_context.dart';
44

55
/// This class contains flags to control several secondary, platform-specific
66
/// aspects of audio playback, like how this audio interact with other audios,

packages/audioplayers_platform_interface/lib/api/for_player.dart renamed to packages/audioplayers_platform_interface/lib/src/api/for_player.dart

File renamed without changes.

packages/audioplayers_platform_interface/lib/api/log_level.dart renamed to packages/audioplayers_platform_interface/lib/src/api/log_level.dart

File renamed without changes.

packages/audioplayers_platform_interface/lib/api/player_mode.dart renamed to packages/audioplayers_platform_interface/lib/src/api/player_mode.dart

File renamed without changes.

packages/audioplayers_platform_interface/lib/api/player_state.dart renamed to packages/audioplayers_platform_interface/lib/src/api/player_state.dart

File renamed without changes.

0 commit comments

Comments
 (0)