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.