Skip to content
This repository has been archived by the owner on Sep 19, 2023. It is now read-only.

Latest commit

 

History

History
223 lines (176 loc) · 7.3 KB

README.pt-BR.md

File metadata and controls

223 lines (176 loc) · 7.3 KB

on_audio_edit

Pub.dev Platform Flutter Kotlin

on_audio_edit é um Flutter Plugin usado para editar e ler audios/songs 🎶 informações/tags [Mp3, OggVorbis, Wav, etc...].

Esse Plugin usa AdrienPoupa:jaudiotagger como dependência para editar audios tags.

Ajuda:

Algum problema? Issues
Alguma sugestão? Pull request

Traduções :

NOTE: Fique à vontade para ajudar nas traduções

Tópicos:

Como instalar:

Adicione o seguinte codigo para seu pubspec.yaml:

dependencies:
  on_audio_edit: ^1.5.1

Solicitar Permissões:

Se você quer usar a solicitação de permissões interna, irá precisar adicionar os seguintes codigos para seu AndroidManifest.xml
Note: Esse Plugin não tem um sistema de permissão interno.

<manifest> ...

  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

</manifest>

Legacy External Storage:

Se você está usando/quer usar Android 10 irá precisar adicionar os seguintes codigos para seu AndroidManifest.xml

<application> ...

  android:requestLegacyExternalStorage="true"

</application>

Algumas qualidades:

  • Ler Audios/Songs tags.
  • Editar Audios/Songs tags.
  • Suporta o Android 10 e superior..

Para fazer:

  • Adicionar uma melhor performace para todo o plugin.
  • Adicionar [deleteArtwork] para Android 10 e superior.
  • Adicionar [deleteArtworks] para Android 10 e superior.
  • Adicionar [deleteAudio] para Android 10 e superior.
  • Arrumar erros.

Como usar:

OnAudioEdit() // O comando principal para usar o plugin.

Todos os tipos de métodos nesse plugin:

Read methods

Methods Parameters Return
readAudio (String) AudioModel
readAudios (List<String>) List<AudioModel>
readSingleAudioTag (String, TagsType) String
readSpecificsAudioTags (String, List<TagsType>) AudioModel

Edit methods

Methods Parameters Return
editAudio (String, Map<TagsType, dynamic>) bool
editAudios (List<String>, List<Map<TagsType, dynamic>>) bool
editArtwork (String, bool, String, ArtworkFormat, int, String) bool

Delete methods

Methods Parameters Return
deleteArtwork [W](String) bool
deleteArtworks [W](List<String>) bool
deleteAudio [W](String) bool

Permission/Image methods

Methods Parameters Return
getImage ArtworkFormat, Quality ImageModel
permissionsStatus bool
resetComplexPermission [Q] bool
requestComplexPermission [Q] bool
requestComplexPermission [Q] bool

[Q] -> Apenas necessário no Android 10 ou superior. [W] -> Esses métodos estão atualmente apenas implementados no Android 9 ou inferior.

TagsType:

Types Types Types Types Types
ALBUM_ARTIST ORIGINAL_ARTIST ORIGINAL_ALBUM TRACK FORMAT
ARTIST ORIGINAL_LYRICIST LYRICS TITLE SAMPLE_RATE
ARTISTS ORIGINAL_YEAR LANGUAGE TEMPO CHANNELS
BEATS_PER_MINUTE PRODUCER KEY TAGS COVER_ART
COMPOSER QUALITY ISRC SUBTITLE TYPE
COUNTRY RATING FIRST_ARTWORK LENGTH More
GENRE RECORD_LABEL YEAR BITRATE

Exemplos:

OnAudioEdit

  final OnAudioEdit _audioEdit = OnAudioEdit();

readAudio

  // data: "/storage/1E65-6GH3/SomeMusic.mp3" or "/storage/someFolder/SomeMusic.mp3"
  AudioModel song = await _audioEdit.readAudio(data);
  String songTitle = song.title;
  String songArtist = song.artist ?? '<No Artist>';

readAudios

  List<String> allData = [data0, data1, data2];
  List<AudioModel> song = await _audioEdit.readAudios(allData);
  ...
  String songTitle1 = song[0].title;
  String songTitle2 = song[1].title;
  String songTitle3 = song[2].title;

readSingleAudioTag

  String title = await _audioEdit.readSingleAudioTag(data, TagsType.TITLE);
  print(title); // Ex: Heavy, California
  ...
  String artist = await _audioEdit.readSingleAudioTag(data, TagsType.ARTIST);
  print(artist); // Ex: Jungle

readSpecificsAudioTags

  List<TagsType> tags = [
    TagsType.TITLE,
    TagsType.ARTIST
  ];
  AudioModel songSpecifics = await _audioEdit.readSpecificsAudioTags(data, tags);
  ...
  String songTitle = songSpecifics.title;
  String songArtist = songSpecifics ?? '<No Artist>';

editAudio

  Map<TagsType, dynamic> tags = {
    TagsType.TITLE: "New Title",
    TagsType.ARTIST: "New Artist"
  };
  bool song = await _audioEdit.editAudio(data, tags);
  print(song); //True or False

editAudios

Note: This method isn't implemented on Android 10 or above. Instead use: editAudio

  // Tags
  List<<Map<TagsType, dynamic>> tags = [];
  Map<TagsType, dynamic> getTags = {
    TagsType.TITLE: "New Title",
    TagsType.ARTIST: "New Artist"
  };
  tags.add(getTags);

  // Songs data
  List<String> data;
  data.add(song1);
  data.add(song2);
  data.add(song3);
  bool result = await _audioEdit.editAudios(data, tags);
  print(result); //True or False

editArtwork

Note: If openFilePicker is false, imagePath can't be null.

  // Parameters: openFilePicker, imagePath, format, size, description
  // DEFAULT: true, null, ArtworkFormat.JPEG, 24, "artwork"
  bool song = await _audioEdit.editArtwork(data);
  print(song); //True or False

LICENÇA: