audioplayers_tizen 1.1.0
audioplayers_tizen: ^1.1.0 copied to clipboard
Tizen implementation of the audioplayers plugin.
audioplayers_tizen #
The Tizen implementation of audioplayers.
Usage #
This package is not an endorsed implementation of audioplayers. Therefore, you have to include audioplayers_tizen alongside audioplayers as dependencies in your pubspec.yaml file.
dependencies:
audioplayers: ^0.20.1
audioplayers_tizen: ^1.1.0
Then you can import audioplayers in your Dart code:
import 'package:audioplayers/audioplayers.dart';
For detailed usage, see https://github.com/luanpotter/audioplayers#usage.
Required privileges #
To use this plugin in a Tizen application, you may need to declare the following privileges in your tizen-manifest.xml file.
<privileges>
<privilege>http://tizen.org/privilege/mediastorage</privilege>
<privilege>http://tizen.org/privilege/externalstorage</privilege>
<privilege>http://tizen.org/privilege/internet</privilege>
</privileges>
- The mediastorage privilege (
http://tizen.org/privilege/mediastorage) is required to play audio files located in the internal storage. - The externalstorage privilege (
http://tizen.org/privilege/externalstorage) is required to play audio files located in the external storage. - The internet privilege (
http://tizen.org/privilege/internet) is required to play any URLs from network.
For detailed information on Tizen privileges, see Tizen Docs: API Privileges.
Supported APIs #
- ✅
AudioPlayer.play(supported arguments:url,volume,position) - ✅
AudioPlayer.playBytes(supported arguments:bytes,volume,position) - ✅
AudioPlayer.pause - ✅
AudioPlayer.stop - ✅
AudioPlayer.resume - ✅
AudioPlayer.release - ✅
AudioPlayer.seek - ✅
AudioPlayer.setVolume - ✅
AudioPlayer.setReleaseMode - ✅
AudioPlayer.setPlaybackRate - ✅
AudioPlayer.setUrl(supported arguments:url) - ✅
AudioPlayer.getDuration - ✅
AudioPlayer.getCurrentPosition - ✅
AudioPlayer.dispose - ❌
AudioPlayer.earpieceOrSpeakersToggle(not supported by Tizen) - ❌
Logger.changeLogLevel(not implemented) - ❌
NotificationService(iOS-only)
Note: In order to use the AudioPlayer.playBytes method, you need to manually modify the source code (audioplayers.dart) of your cached audioplayers package.
Future<int> playBytes(
Uint8List bytes, {
...
}) async {
// Delete or comment out the following lines.
// if (!_isAndroid()) {
// throw PlatformException(
// code: 'Not supported',
// message: 'Only Android is currently supported',
// );
// }
final result = await _invokeMethod(
'playBytes',
<String, dynamic>{
...
}
Limitations #
This plugin has some limitations on TV devices.
- The
setPlaybackRatemethod will fail if triggered within last 3 seconds. - The playback rate will reset to 1.0 when audio is replayed in loop mode.
- The
seekmethod works only when playback rate is 1.0, and it sets audio position to the nearest key frame which may differ from the passed argument.