Android Multimedia API - Vitamio Framework
Android Multimedia Api Vitamio Framework
MediaPlayerja sem se naučil že prej.
https://blog.csdn.net/nishigesb123/article/details/89479084
Vendar pa so medijski formati, ki jih podpira MediaPlayer, dejansko omejeni. Kot je bilo omenjeno na začetku, Android Multimedia vključuje tudi številne zunanje okvire.
Ta članek je zunanji okvir za predvajanje multimedijskih vsebin Android - okvir Vitamio, ki podpira skoraj vse predstavnostne formate.
Pregled
Naslov uradne spletne strani: https://www.vitamio.org/
Naslov uradnega spletnega mesta v angleščini (?): https://www.vitamio.org/en/
naslov projekta: https://github.com/yixia/VitamioBundle
Izdelano iz spodnjega naslova za prenos! ! Razlogi za sklicevanje: https://blog.csdn.net/nishigesb123/article/details/89576962
Nov naslov projekta (?): https://github.com/yixia/VitamioBundleStudio
je uvod z uradne spletne strani
Vitamio je vsestranski multimedijski razvojni okvir za Android in iOS, ki v celoti podpira strojno dekodiranje in upodabljanje GPU. Vitamio je s preprostim in enostavnim vmesnikom API-ja pridobil naklonjenost številnih razvijalcev po vsem svetu. Do danes je več kot 10.000 aplikacij po vsem svetu uporabljalo Vitamio, ki pokriva več kot 500 milijonov uporabnikov.
Vitamio lahko gladko predvaja 720P ali celo 1080P HD MKV, FLV, MP4, MOV, TS, RMVB in druge običajne formate. Podpira lahko tudi MMS, RTSP, RTMP, HLS (m3u8) in druge pogoste platforme v sistemih Android in iOS. Protokoli za pretakanje video posnetkov, vključno z oddajanjem na zahtevo in v živo.
Podpora za pretakanje medijev
Vitamio podpira različne običajne protokole za pretakanje, ki jih je mogoče pretočno predvajati ali pretakati v zvok in video, na primer naslednje pogoste protokole:
- MMS
- RTSP (RTP, SDP), RTMP
- HTTP progresivno pretakanje
- HLS - Pretakanje HTTP v živo (M3U8)
Avdio in video formati
Vitamio uporabljen FFmpeg Kot razčlenjevalnik medijev in najpomembnejši dekodirnik je razvil tudi trdo shemo dekodiranja za različne mobilne platforme, ki lahko popolnoma podpira običajna video kodiranja, kot so H.264 / AVC, H.263, MPEG4, ki pokrivajo stotine večpredstavnostnih formatov. . Naslednja tabela je le nekaj najpogostejših podpor za video format, razen posebnih indikacij, vse podpirajo strojno pospeševanje:
- DivX / Xvid
- WMV (običajno le mehko dekodiranje)
- FLV
- TS / TP
- RMVB (samo mehko dekodiranje)
- MKV
- MOV
- M4V
- AVI
- MP4
- 3GP
Podpora za podnapise
Vitamiova podpora za podnapise je odlična, vključno z različnimi pogostimi podnapisi in vdelanimi podnapisi v številnih video formatih, pa tudi podpora za funkcije, kot je več podnapisov. kot naprimer:
- SubRip (.srt)
- Sub Station Alpha (.ssa) / Advanced Sub Station Alpha (.ass)
- SAMI (.smi / .sami)
- MicroDVD (.sub / .txt)
- SubViewer2.0 (.sub)
- MPL2 (.mpl / .txt)
- Matroska (.mkv) vgrajeni podnapisi
Več funkcij
Poleg zgoraj naštetih skupnih lastnosti je Vitamio opravil še veliko človeškega dela:
- Podpora za več skladb in podnapisov
- Previdna optimizacija CPU in GPU
- Podpira mobilni telefon za tablične računalnike različnih naprav
- Podpora medpomnilnika za predvajanje medijskih vsebin
- Velikost zaslona za predvajanje se prilagaja ročno
- Samodejno zaznavanje kodiranja besedila, zavrnitev popačena
Na seznamu je še več novih funkcij, poglejte v razvojno dokumentacijo.
Enter
Sledi uradna predstavitev uvoza
Uvoz in uporaba
1. Uvoz. Po prenosu boste morda ugotovili, da datoteka projekta .project ne obstaja, projekt lahko uvozite prek Datoteka -> Uvozi -> Android -> Obstoječa koda Android v delovni prostor in nato spremenite ime projekta.
2. Za predstavitev predstavitvenega projekta uporabite projekt VitamioBundle kot knjižnico Android.
Opomba:
Če gre za uporabnika sistema Windows, prosimo, da v isto mapo postavite projekt VitamioBundle in Demo, sicer dodajanje knjižnice Android morda ne bo uspelo, druge težave so na splošno čiste in se znova prevedejo. Za druga vprašanja glejte napako.
Po prenosu celotnega projekta Vitamio na uradno spletno stran ali Github
Z desno miškino tipko kliknite svoj projekt
Nov modul
Izberite Liberary
Za konfiguracijo kliknite Naprej
Navodila za konfiguracijo: poglejte preneseni projekt vitamio, opazujte mapo src, lahko ugotovite, da je ime paketa dejansko io.vov.vitamio, zato tudi to izpolnim
Ko končate, kopirajte datoteko z ikonami v naš vitamin.
Preklopite na pogled projekta ali delujte neposredno v imeniku projekta
Kopirajte vsebino štirih map v mapo libs prenesenega projekta vitamio
Izberite in kopirajte vsebino treh podmap v mapi libs prenesenega projekta vitamio.
Ustvarite mapo jniLibs v imeniku app app / src / main in jo kopirajte vanj.
Na začetku nisem vedel, da je As prvotno le prepoznal ta imenik.
https://blog.csdn.net/nishigesb123/article/details/89576962
Na koncu dodajte še ta stavek, torej ne pameten, to mi ne pomaga samodejno pri izpolnjevanju. . .
To je bilo uvoženo.
Nato sem še vedno naletel na nekaj napak, češ da v surovem ni, nato pa sem vsebino mape res kopiral v svoj projekt.
Sledi koda za trkanje
uporaba
Pripravljen za delo
Lahko se sklicujete na konfiguracijsko datoteko prenesenega izvornega projekta in potrebujete naslednja dovoljenja.
package com.example.a4_26vitamio import android.os.Environment import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import java.io.File import java.io.IOException import io.vov.vitamio.MediaPlayer import io.vov.vitamio.LibsChecker public class MainActivity extends AppCompatActivity implements MediaPlayer.OnPreparedListener { / / Note the package import io.vov.vitamio.MediaPlayer don't be wrong private MediaPlayer mediaPlayer @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) / / Load the so class library (usually use C, C + + to write the class library) if (!LibsChecker.checkVitamioLibs(this)) return setContentView(R.layout.activity_main) / / Initialize the player initMediaPlay() } private void initMediaPlay() { mediaPlayer = new MediaPlayer(this) } public void play(View v) { String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) + File.separator +'a1.mp3' try { mediaPlayer.reset() mediaPlayer.setDataSource(path) mediaPlayer.setOnPreparedListener(this) mediaPlayer.prepareAsync() } catch (IOException e) { e.printStackTrace() } } public void pause(View v) { mediaPlayer.pause() } public void stop(View v) { mediaPlayer.stop() mediaPlayer.release() } @Override public void onPrepared(MediaPlayer mp) { mp.start() } }
Zahtevana izjava
Predvajaj zvočni ovitek
Datoteka postavitve
MainActivity
Če učinek ni viden, je zvok resnično napačen.
Konzola izpiše kopico dnevnikov, zelo popolnih
Kliknite začasno ustavi
Kliknite, da se ustavite
Predvajaj ohišje za video
Ta del bo zaključen jutri. Danes je blizu tega, da bi tekel skozi to stvar z duhom, skorajda obupan.