Flutter tətbiqetmənizə musiqi / səs əlavə etmək

Flutter Create Challenge’dan sonra qarşılaşdığım bəzi çətinliklər və bu problemi necə həll etdiyim barədə məlumatları əks etdirmək və bölüşmək üçün bir vaxt olacağını düşündüm. Onlardan biri tətbiqimə musiqi əlavə etmək idi.

Flutter SDK-nın səs / musiqi oxutma dəstəyinin olmadığını öyrəndikdən sonra pub.dev-də musiqi ilə əlaqəli bütün paketləri araşdırdım və aşağıdakı 6-nı tapdım.

  1. aktivlər_sudio_player
  2. Səs pleyeri / səs pleyeri / səs pleyeri 2
  3. Fleyta musiqi pleyeri
  4. Çırpınan səs
  5. stereo
  6. Musiqi pleyeri

Bir musiqi plagini tapmağa çalışmaq o qədər də çətin deyil. Həm Android, həm də iOS-da işləyən bir musiqi plagini tapmağa çalışırsınız? Bir az daha çətin.

Öz tədqiqatını aparmaq məcburiyyətində qalmamağım üçün qarşılaşdığım problemləri sadalayaraq, hər paketlə musiqi çalmağın qısa bir nümunəsini verməyə qərar verdim.

Tezliklə sona qədər tullanmaq istəyirsinizsə, hər bir paket üçün əsas nəticələri ümumiləşdirdiyim bir cədvəl var. Android və / və ya iOS-u dəstəklədikləri təqdirdə, musiqi sənədlərinin səsləndirilməsini, daxili cihaz musiqi sənədlərini dəstəklədiklərini və nəhayət Flutter layihənizin Varlıqlar qovluğundan musiqi sənədlərini dəstəklədiklərini siyahıya alacağam.

Mənə təşəkkür etmək istəyirsən Bu paketi qiymətləndirdiyinizi Medium düyməsini basaraq bölüşərək göstərin. Çox xoşbəxt olardıq!

aktivlər_sudio_player

Github | Pub

Bu, sınadığım ilk paketlərdən biri idi, amma təəssüf ki, iOS-da işləmir. Həm iOS, həm də Android-ə ehtiyacınız varsa, bunlardan çəkinin.

İOS-u dəstəkləmək istəmirsinizsə, bu paketi qurmaq asandır və sadəcə bir musiqi pleyeri nümunə tətbiqini sınamaq üçün müşayiət olunan nümunəni klonlaya bilərsiniz.

Dərhal arxa planda musiqi çalmaq üçün asset_audio_player 1.0.1-i necə qurmaq olar.

Problemlər

  • Yalnız Android üçün
  • Səs oxumasını asanlaşdırmaq üçün döngü metodunun olmaması
  • Bəzən səsin emulatorda ilk dəfə səslənmədiyini gördüm. Buna səbəb olan şeylərdən əmin deyiləm. Bununla birlikdə, emulatoru yenidən başlamağınızı məsləhət görürəm və ümumiyyətlə ikinci dəfə işləyir (paketin günahı deyil, yalnız mənim) xəbərdar olmağınızı bildirin!)

Səs pleyeri / səs pleyeri / səs pleyeri 2

Github | Pub

Mümkün olan qarışıqlığı aradan qaldırmaq üçün - bəli, düzgün oxudunuz, ilk səs pleyer paketinin iki versiyası var.

Şok bilirəm!

Ən son yenilənmiş paket Audio Oynatıcılardır. Adına baxmayaraq, Audio Player 2 yaxın vaxtlarda Audio Player və ya Audio Player kimi yenilənməyib. Qarışıqlığın qarşısını almaq üçün yalnız ən son yenilənmiş paketi əlaqələndirdim.

Səs pleyerlərini yalnız Flutter Create layihəmdə istifadə etdikdən sonra qurmağı və istifadəsini çox asan tapdıqdan sonra tövsiyə edə bilərəm. Bu, iOS və Android üçün problemsiz işlədiyim yeganə musiqi paketidir.

Bu 3 paketdən hər hansı birinin inkişaf etdiriciləri bunu oxuyursa, digər Audio Player paketlərinin inkişaf etdiriciləri ilə əlaqə qurun və tək bir paket üzərində işləməyə razı olun. Eyni paketin 3 versiyası varsa, heç kimə fayda verməyəcəkdir.

İşdə plaginin sürətli bir nümunəsi

Problemlər

  • Asset_audio_player-a uyğundur, bəzən səsin əvvəlcə bir emulatorda işə salındıqdan dərhal sonra səslənmədiyini gördüm (adətən emulatorun yenidən başlamasını tələb edir).
  • Uzaqdan qeyd olunan MP3-lər URL-lərindən səsləndirilə bilməz
  • Bir cihazın daxili musiqi sənədləri səsləndirilə bilməz

Fleyta musiqi pleyeri

Github | Pub

Bu plaginlə yalnız istifadəçinin cihazında olan musiqidən istifadə edə bilərsiniz. Adına uyğun gəlir - bir musiqi pleyeri inkişaf etdirmək istəyirsinizsə, mükəmməl bir kitabxanadır, amma təəssüf ki, yalnız Android-i dəstəkləyir, iOS və Android-i yox.

Görmək istədiyim bir şey, Flutter Assets qovluğundan geliştirici tərəfindən təyin olunmuş səsi oxutmaq üçün əlavə bir funksionallıq olacaqdır.

Əgər iOS inkişaf təcrübəniz varsa, həm iOS, həm də Android üçün işləməsini təmin etmək üçün layihəyə töhfə verə bilsəniz çox yaxşı olardı!

Qeyd Nümunə plagin layihəsi və nümunə musiqi pleyeri layihəsini istifadə edərkən Android cihazınızda musiqi olduğundan əmin olun. Əks təqdirdə (və aşağıdakı nümunə) işləməyəcəkdir.

Təqlid etdiyiniz cihaza necə sürətli bir musiqi əlavə edəcəyinizdən əmin deyilsinizsə, yalnız bir emülatörü çalıştırdığınız kompüterdən bir MP3 sənədini aktiv emulyatora sürükləyin və MP3 faylı avtomatik olaraq Kompüter yükləyiciləri emulatordan kopyalayır. Sonra bu faylı səs sahəsinə köçürməlisiniz.

Bütün parametrləri etdikdən sonra aşağıdakı nümunəni işə sala bilərsiniz!

Problemlər

  • Hələ iOS üçün tətbiq olunmayıb (4 May 2019 Şənbə günü)
  • Varlıqlar qovluğundakı MP3-lər səsləndirilə bilmir
  • Səs oxumasını asanlaşdırmaq üçün döngü metodunun olmaması

Çırpınan səs

Github | Pub

Yeniləmə (7 oktyabr 2019): Görünür bu paket artıq mövcud deyil - həm GitHub linki, həm də pub linki işləməyi dayandırdı.

Uzaq bir yerdən musiqini onlayn yayımlamaq istəyirsinizsə, Fluttery Audio bu funksiyanı sizə təqdim edir!

Nümunəmin iOS-da işləməsi və iOS-da plaginlə bağlı digər problemləriniz varsa, iOS layihənizlə işləyəcəyinə tam əmin deyiləm.

Nümunəm bir Android cihazında işlədildikdə, AndroidX-i dəstəkləmədiyi üçün bir problem olurdu. Buna, layihənizdə Android X istifadə edən başqa bir eklentinin istifadəsi səbəb olur. İnşallah bu yaxınlarda Android X-ə güncəllənəcək və paketin Android X ilə işlədiyindən əmin olmaq üçün hələ birləşdirilməmiş açıq bir PR var.

Tətbiqinizi yükləyən kimi uzaq bir musiqi faylını necə yayımlayacağınıza dair qısa bir nümunə

Problemlər

  • Hazırda Android X dəstəyi çatışmır
  • Flutter layihəsinin Varlıqlar qovluğundan musiqi faylları səsləndirilə bilmir
  • İOS dəstəyi ilə problemləriniz ola bilər (?)
  • Qurma funksiyasının xaricində işləməsini əldə edə bilmədi
  • Səs oxumasını asanlaşdırmaq üçün döngü metodunun olmaması

stereo

Github | Pub

Daxili Android və iOS sənədlərini əl ilə necə yeniləməli olduğunuzun pərəstişkarı deyil. Çox istərdim ki, bir ssenaridə avtomatlaşdırıla bilər. Əsasən onları səhv bir faylda yerləşdirməyin əlavə problemlər yarada biləcəyini düşündüyüm üçün. Məsələn, tipik iOS tətbiqetmə inkişafı ilə tanış deyiləm. Buna görə Info.plist axtaranda eyni adlı çoxsaylı sənədlər tapdım.

Əl ilə sənəd düzəlişi - əyləncəsizdir

Tətbiq açıldıqda bunun dərhal səslənməsini təmin etməyə çalışdım, ancaq bir müddət problemi həll etməyə və tam olaraq nə olduğunu müəyyənləşdirdiyim Android yerli kodunda bir problem var problemə səbəb oldu. Daha çox araşdırma aparmaq üçün paketin inkişaf etdiricilərinə həvalə etdim.

Təəssüf ki, bir düyməni basdıqda paketi işə salmağa çalışmaq üçün nümunəmi düzəltdikdən sonra yenə də eyni problemlə qarşılaşdım. Təəssüf ki, bu paketin nümunəsi yoxdur.

Problemlər

  • Tətbiq dərhal başlayarsa, arxa planda heç bir musiqi səsləndirilə bilməz
  • Göründüyü kimi Android API 27 üçün bu paketlə bağlı həll olunmamış bir problem var
  • Qurmaq olduqca çətindir (bəlkə də səhv bir şey edirəm və bu səbəbdən bu problemlərlə qarşılaşıram, amma bu o qədər də çətin olmamalıdır)

Musiqi pleyeri (inkişafdadır)

Gitlab | Pub

Hal hazırda inkişafdadır və səs / musiqi plaginlərini araşdırmağa başladığımda heç bir nümunə yox idi və indi \ o / var, amma təəssüf ki, nümunəni sınadığım zaman uğurla işləyə bildim.

Repodakı plagin 0.0.6 versiyasına qədərdir, lakin pubdakı ən yeni versiya 0.0.3-dür. Bu plaginin inkişafını izləmək və gələcəkdə pub-da daha yeni bir versiya çıxdıqda bu bölməni yeniləməyin ən yaxşısını düşünün.

Hazırda, paketin yalnız iOS ola biləcəyini düşünürəm, baxmayaraq ki, 100% əmin deyiləm. Bu vəziyyətdə, Flute Music Player və Music Player inkişaf etdiricilərinin iOS və Android üçün eyni funksiyanı təklif edən tək bir musiqi pleyeri yaratmaq üçün birləşməsi ən yaxşı ssenaridir.

Problemlər

  • İnkişafda və hələ istifadəyə hazır deyil

Nəticə

Flutter üçün artıq bir çox fərqli musiqi / səs paketinin mövcud olması təəccüblüdür. Lakin, aşağıdakı cədvəldən də göründüyü kimi, hər paketdə bəzi vacib xüsusiyyətlər yoxdur. Flutter üçün layihənizdə istifadə edəcəyi bir paket seçmədən əvvəl bunları nəzərə almaq vacibdir.

Bəzi paketlər üçün "?" Tamamilə əmin olmadığımı düşündüyüm istifadə, şəxsi təcrübəmə əsaslanaraq paketi bu məqsədlə istifadə etməyimin yaxşı bir fikir olacağını düşünürəm - məsələn, başqalarının özlərinə aid olsaydı, təqdir edəcəyim bir şey edə bilərdim. Təcrübəni paylaşın.

Bu paketlərin bəzi inkişaf etdiricilərinin bu bütün əsas xüsusiyyətlərə sahib olan və Flutter tətbiqetmələri üçün ən uyğun olan 1/2 paket yaratmaq üçün birlikdə çalışdıqlarını görmək istərdim - həm iOS, həm də Android.

Fikirlərinizi bölüşün!

Bu paketlərdən birini istifadə etmək istəyənlərə və bu paketlərin inkişaf etdiricilərinə kömək etmək üçün təcrübələrimi Flutter-in musiqi / səs paketləri ilə bölüşmək üçün bir anket hazırlamağı faydalı hesab etdim.

Bu Flutter Musiqi / Səs Paketi anketini doldursanız çox istərdim: https://forms.gle/JD4j9GQjgHEibJP5A

Nəhayət

Oxuduğunuz üçün təşəkkür edirik! Ümid edirəm bu məqalə Flutter layihənizdə ehtiyaclarınıza uyğun paketi seçməyinizə kömək etdi!

Bu məktubun sonuna qədər sizi təbrik edirəm

https://twitter.com/MarkOSullivan94