Kuidas lisada rakendust Flutter muusikat / heli?

Pärast väljakutse Flutter Create loomist arvasin, et see on aeg mõtlemiseks ja teadmiste jagamiseks mõne väljakutse ees, millega ma kokku puutusin ja kuidas ma selle väljakutse lahendasin. Üks neist oli muusika lisamine minu rakendusele.

Pärast Flutteri avastamist ei ole SDK-l heli / muusika mängimiseks tuge. Otsisin kõik saadaval olevad paketid, mis olid saidil pub.dev seotud muusikaga, ja leidsin järgmised 6.

  1. varad_audio_mängija
  2. Helimängija / helimängijad / helimängija 2
  3. Flöödimuusikamängija
  4. Fluttery Audio
  5. Stereo
  6. Muusikamängija

Proovin leida muusika pluginat, mitte nii karm. Kas proovite leida muusikapistikprogrammi, mis toimiks nii Androidis kui ka iOS-is? Natuke väljakutsuvam.

Säästmaks teid sellest, et ei peaks ise uuringuid tegema, otsustasin jagada iga paketiga kiire näite muusika esitamiseks ja loetleda probleemid, millega kokku puutusin.

Kui soovite kiiresti lõppu minna - leiate tabeli, kus olen kokku võtnud iga paketi peamised leiud. Olen loetlenud, kas nad toetavad Androidi ja / või iOS-i, kui nad toetavad serveriga hostitud muusikafailide mängimist, kui nad toetavad seadme sisemisi muusikafaile ja kui nad toetavad teie Flutteri projekti varade kataloogist pärit muusikafailide mängimist.

Kas soovite mind tänada? Kui soovite selle paketi eest oma arvamust üles näidata, klõpsates nuppu Keskmine ja jagades seda, oleks see väga teretulnud!

varad_audio_mängija

Github | Pubi

See oli üks esimesi pakette, mida proovisin, kuid kahjuks ei tööta see iOS-is. Kui vajate nii iOS-i kui ka Androidi, vältige seda.

Kui te ei soovi iOS-i toetada, on seda paketti lihtne seadistada ja saate selle pleieri hõlpsalt kloonida, et proovida muusikamängija näiterakendust.

Siit saate teada, kuidas seadistada asset_audio_player 1.0.1 kohe muusika mängimiseks taustal.

Väljaanded

  • Ainult Android
  • Heli mängimise jätkamiseks puudub silmusmeetod
  • Olen leidnud, et mõnikord ei esitata heli emulaatoris esimest korda. Ma pole kindel, mis selle põhjustab, kuid soovitan oma emulaatori taaskäivitada ja see töötab minu jaoks tavaliselt teist korda (mitte tingimata paketi süü, vaid lihtsalt andes teile sellest teada!)

Helimängijad / Helimängija / Helimängija 2

Github | Pubi

Mõne võimaliku segaduse kõrvaldamiseks - kui lugesite seda õigesti, on kõige esimesest Audio Playeri paketist kaks kahvliga versiooni.

Šokeeriv, ma tean!

Viimati värskendatud pakett on helipleierid. Vaatamata nimele pole Audio Players 2 viimasel ajal värskendatud kui Audio Player või Audio Players. Segaduste vältimiseks olen linginud ainult viimati värskendatud paketiga.

Soovitan täielikult kasutada helipleiereid, kes on seda kasutanud oma projektis Flutter Create ja leidnud, et seda on väga lihtne seadistada ja kasutada. See on ainus muusikapakett, millel mul õnnestus iOS-i ja Androidi jaoks ilma probleemideta tööle hakata.

Kui mõne neist kolmest arendaja loeb seda, pöörduge teiste audiopleieri pakettide arendajate poole ja nõustuge töötama ühe paketi kallal, see ei anna kellelegi eelist, kui samast paketist on 3 versiooni .

Siin on kiire näide plugina toimimisest

Väljaanded

  • Sama mis asset_audio_player, kus ma leidsin, et heli ei mängita kohe pärast emulaatori esmakordset käivitamist (see nõuab tavaliselt emulaatori taaskäivitamist)
  • Nende URL-i abil ei saa eemalt salvestatud mp3-sid esitada
  • Seadme sisemisi muusikafaile ei saa esitada

Flöödimuusikamängija

Github | Pubi

Selle pistikprogrammi abil piirdute ainult kasutaja seadmes juba oleva muusika kasutamisega. See vastab oma nimele - see on täiuslik kogu, kui soovite muusikamängijat arendada, kuid kahjuks toetab see ainult Androidi, mitte nii iOS-i kui ka Androidi.

Üks asi, mida ma hea meelega näeksin, oleks lisafunktsioonid heli mängimiseks, mille arendaja on määranud Flutteri varade kataloogist.

Kui teil on mõnda iOS-i arenduskogemust, oleks fantastiline, kui annaksite oma panuse projekti, nii et see töötab nii iOS-i kui ka Androidi jaoks!

Märge
Veenduge, et pistikprogrammi näidisprojekti kasutamisel ja ka muusikamängija näidisprojekti kasutamisel asub teie Android-seadmes muusika, vastasel juhul see (ja allpool toodud näide) ei tööta.

Kui te pole kindel, kuidas oma emuleeritud seadmesse muusikat kiiresti lisada, lohistage MP3-fail MP3-failist, kus te emulaatorit kasutate, sinna, kus emulaator praegu töötab, ja see paneb MP3-faili automaatselt kausta emulaatori allalaadimised. Järgmisena peate selle faili kopeerima jaotisesse Heli.

Kui kõik seadistused on tehtud - saate käivitada allpool toodud näite!

Väljaanded

  • IOS-i jaoks pole veel rakendatud (alates laupäevast, 4. mai 2019)
  • Varade kataloogis asuvat mp3-d ei saa esitada
  • Heli mängimise jätkamiseks puudub silmusmeetod

Fluttery Audio

Github | Pubi

Värskendus (7. oktoober 2019): tundub, et see pakett pole enam saadaval - nii link GitHub kui ka pubi ei tööta enam.

Kui soovite voogesitada muusikat võrgus kaugest asukohast - Fluttery Audio pakub teile seda funktsiooni!

Kuigi ma pole täiesti kindel, kas see töötab teie iOS-i projektiga seoses probleemiga, mis on seotud minu näite käivitamisega iOS-is ja teistega märkamisega, kellel on iOS-i pistikprogrammiga probleeme.

Kui näite Android-seadmes, näitasin seda AndroidX-i toe puudumise tõttu. Selle põhjuseks on teise plugina kasutamine oma projektis, mis kasutab Android X-i. Loodetavasti uuendatakse see varsti Android X-i ja praegu on avatud PR, mida pole veel ühendatud, et tagada paketi töötamine Android X-iga .

Siin on kiire näide, kuidas voogesitada muusikafaili kohe pärast rakenduse laadimist

Väljaanded

  • Praegu puudub Android X tugi
  • Flutteri projekti varade kaustast ei saa muusikafaile esitada
  • Võib-olla on probleeme iOS-i toega (?)
  • Ei saanud seda tööle väljaspool ehitamisfunktsiooni
  • Heli mängimise jätkamiseks puudub silmusmeetod

Stereo

Github | Pubi

Pole fänn, kuidas teil tuleb sisemisi Androidi ja iOS-i faile käsitsi värskendada. Mulle meeldiks, kui seda saaks skriptis automatiseerida. Peamiselt seetõttu, et minu arvates võib see valele faili lisamisel põhjustada täiendavaid probleeme, näiteks pole ma tuttav iOS-i rakenduse tüüpilise arendusega, nii et kui otsisin teavet.plist, leidsin arvukalt samanimelisi faile.

Failide käsitsi redigeerimine - pole lõbus

Proovisin mitu korda, et saada see heli taasesitamiseks kohe, kui rakendus avati, kuid tekkis probleem loodusliku Androidi koodiga, mille jaoks veetsin aega silumiseks ja aru saamiseks, mis selle probleemi täpselt põhjustas. Kuna edasisi edusamme pole võimalik teha, jätsin selle edaspidiseks uurimiseks paketiversioonide otsustada.

Pärast minu näite täpsustamist, et proovida pakett tööle panna, kui nuppu klõpsatakse, oli mul kahjuks sama probleem ülal ja seetõttu pole selle paketi jaoks ühtegi näidet.

Väljaanded

  • Rakenduse kohe käivitamisest alates ei saa taustal muusikat mängida
  • Paistab, et selle rakenduse Android API 27 puhul on selle paketiga lahendamata probleem
  • Üsna raske seadistada (võib-olla teen ma midagi valesti ja sellepärast tegelen nende probleemidega, kuid see ei tohiks nii keeruline olla)

Muusikamängija (väljatöötamisel)

Gitlab | Pubi

Praegu on arendusjärgus ja kui ma esimest korda heli / muusika mängimise pistikprogramme uurima hakkasin, polnud sellel näidet ja nüüd on üks olemas. Kuigi kahjuks ei õnnestunud mul seda näidet edukalt käitada, kui ma selle välja testisin.

Repo pistikprogramm on versioonini 0.0.6, kuid pubi uusim versioon on 0.0.3, arvake, et on parem jälgida selle pistikprogrammi käiku ja värskendada seda jaotist tulevikus, kui pubis on avaldatud uuem versioon.

Praegu arvan, et pakett võib olla ainult iOS, ehkki ma pole selles 100% kindel. Kui see on nii, siis võib-olla parim stsenaarium on flöötmuusikapleieri ja pleieri meeskonna loomine ühe muusikapleieri loomiseks, mis pakub sama funktsionaalsust nii iOS-i kui ka Androidi jaoks

Väljaanded

  • Arenduses ja pole kasutamiseks valmis

Järeldus

On üllatav, kui Flutteri jaoks on saadaval juba nii palju erinevaid muusika- / helipakette, kuid nagu näete allolevast tabelist, on mõnel paketil mõned peamised funktsioonid puudu ja on oluline enne paketi valimist neist teadlik olla kasutada oma projektis.

Olen kasutanud mõne paketi puhul “?”, Kus ma ei olnud täiesti kindel, kas oleks minu enda isiklikele kogemustele tuginedes hea mõte seda paketti sel eesmärgil kasutada - näiteks võin ma midagi ette võtta väga valesti Stereoga, nii et oleksin tänulik, kui teised jagaksid oma kogemusi.

Mulle meeldiks, kui mõned nende pakettide väljatöötamisest töötaksid koos, et toota 1/2 paketti, millel on kõik need põhifunktsioonid ja mis kõige tähtsam Flutteri rakenduste jaoks - töötab nii iOS-is kui ka Androidis.

Jagage oma mõtteid!

Aitamaks neid, kes soovivad mõnda neist pakettidest kasutada, ja ka nende pakettide arendajaid, arvasin, et oleks tore koguda teile uuring, et saaksite jagada oma kogemusi Flutteri muusika- / helipakettidega.

Mulle meeldiks, kui saaksite täita selle uuringu Flutter muusika / heli pakkide kohta: https://forms.gle/JD4j9GQjgHEibJP5A

Lõpuks

Täname, et lugesite! Loodan, et see üleskirjutamine on aidanud teil valida projekti Flutter teie vajadustele vastava paketi!

Ma tähistan, et olete jõudnud selle kirjutamise lõppu

https://twitter.com/MarkOSullivan94