anchor.diff:  
   /// An audio asset, represented by an asset name and a folder
   /// This class is used by AssetsAudioPlayer to open a song
  -/// 
  +///
   /// ### Example
   ///
   ///     AssetsAudioPlayer.open(AssetsAudio(
   ///       asset: "song1.mp3",
   ///       folder: "assets/audios/",
   ///     )
  -/// 
  +///
   /// Don't forget to declare the audio folder in your `pubspec.yaml`
  -/// 
  +///
   ///     flutter:
   ///       assets:
   ///         - assets/audios/
  
positive.code:   /// Then mediaplayer playing state (mutable)
    final BehaviorSubject<bool> _isPlaying =
        BehaviorSubject<bool>(seedValue: false);
      /// Then mediaplayer playing state (immutable)
    ValueObservable<bool> get isPlaying => _isPlaying.stream;
  
    /// Then mediaplayer playing audio (mutable)
    final BehaviorSubject<PlayingAudio> _current =
        BehaviorSubject<PlayingAudio>();
    /// Then mediaplayer playing audio (immutable)
    ValueObservable<PlayingAudio> get current => _current.stream;
  
    /// Called when the playing song finished (mutable)
    final BehaviorSubject<bool> _finished =
        BehaviorSubject<bool>(seedValue: false);
    /// Called when the playing song finished (immutable)
    ValueObservable<bool> get finished => _isPlaying.stream;
  
    /// Then current playing song position (in seconds) (mutable)
    final BehaviorSubject<Duration> _currentPosition =
        BehaviorSubject<Duration>(seedValue: const Duration());
    /// Then current playing song position (in seconds) (immutable)
    Stream<Duration> get currentPosition => _currentPosition.stream;
  
  
negative.code:   ///         final asset = playingAudio.assetAudio;
    ///         final songDuration = playingAudio.duration;
    ///     })
    ///
    static ValueObservable<PlayingAudio> get current => _plugin.current;
  
    /// Boolean observable representing the current mediaplayer playing state
    ///
    /// retrieve directly the current player state
    ///     final bool playing = AssetsAudioPlayer.isPlaying.value;
    ///
    /// will follow the AssetsAudioPlayer playing state
    ///     return StreamBuilder(
    ///         stream: AssetsAudioPlayer.currentPosition,
    ///         builder: (context, asyncSnapshot) {
    ///             final bool isPlaying = asyncSnapshot.data;
    ///             return Text(isPlaying ? "Pause" : "Play");
    ///         }),
    static ValueObservable<bool> get isPlaying => _plugin.isPlaying;
  
    /// Called when the current song has finished to play
    ///     AssetsAudioPlayer.finished.listen((finished){
    ///
    ///        })
    ///
    static ValueObservable<bool> get finished => _plugin.finished;
  
    /// Retrieve directly the current song position (in seconds)
    ///     final Duration position = AssetsAudioPlayer.currentPosition.value;
    ///
    ///     return StreamBuilder(
    ///         stream: AssetsAudioPlayer.currentPosition,
    ///         builder: (context, asyncSnapshot) {
    ///             final Duration duration = asyncSnapshot.data;
    ///             return Text(duration.toString());
    ///         }),
    static ValueObservable<Duration> get currentPosition =>
        _plugin.currentPosition;
  