ProHoster > Blog > nûçeyên înternetê > Mirina Koshchei di navnîşa pêşniyaran de ye (ma gengaz e ku hûn YouTube xweş û ewledar bikin?)
Mirina Koshchei di navnîşa pêşniyaran de ye (ma gengaz e ku hûn YouTube xweş û ewledar bikin?)
Destpêk kurt e: Ez dixwazim li ser lîstikvanê serhêl YouTube-ê ji bo Android-ê bi lîsteyên lîstikê, kanal û pêşniyarên herêmî biaxivim.
Pêşgotinek berfireh:
Demek berê ez rastî heman pirsgirêkê hatim ku nivîskarê serîlêdanek ecêb e Lîsteya spî ya kanalê, û ji xwe re tam heman helwest li hember wê diyar kir: Ez dixwazim dem bi dem bikaribim tabletek an smartfonek bi kartonan bidim zarokê xwe, lê ez qet ne kêfxweş im ku, piştî 2-3 klîk, navnîşê li ku derê ye. pêşniyarên di serîlêdanên standard de - xerîdarên YouTube - zarok digire.
Mixabin, piştî sazkirina serîlêdana Channel Whitelist, xeletiyek din a prozaîk, lê dîsa jî kujer hate keşif kirin - NIH I (û ya herî girîng, kurê min) pêwendiya wê ne pir rehet dît, nemaze piştî adeta karanîna lîstikvanê YouTube Kids.
Bi gelemperî, piştî demekê ez amade bûm ku pêkanîna xwe bikim. Piştî demekê, mimkun bû ku li ser berdana yekem nîşanek were danîn.
Taybetmendiyên girîng
Kanal û lîsteyên xweyên bijare lê zêde bikin - ew ê di databasa herêmî de werin tomarkirin û navnîş kirin
Di nav lîsteyên lêzêdekirî de, heke hûn ne hewce ne vîdyoyên nepêwîst bişkînin
Navnîşa pêşniyaran tenê ji kanal û lîsteyên lîstikê yên ku li serîlêdanê hatine zêdekirin bi korfelaqî têne çêkirin
Li jêr nihêrînek li ser taybetmendiyên sereke bi hûrgulî heye, plus hin hûrguliyên teknîkî li ser meriv çawa vîdyoyên YouTube-ê di serîlêdana xweya Android-ê de lîstin bêyî karanîna Google API û pêçanên malperê.
Li ser ekrana sereke û li ser ekrana lîstikvanê: Pêşniyarên rasthatî yên ji kanalên ne-random
Lêgerîna tavilê di databasa herêmî de
=>
Kanalek an lîstikek nû lê zêde bike
Bi navê serhêl bigerin an navnîşek naskirî têxin. Name
Di pêşniyarên vîdyoyê de dê tenê vîdyoyên ku pirsa lêgerînê têr dikin hebin.
Bi heman rengî, heke hûn vîdyoyek ji mîhengên navnîşa lîstikê vekin, tenê vîdyoyên ji heman lîstikê dê di navnîşa pêşniyaran de xuya bibin.
Lîsteyên lîstikê û kanal dikarin bi demkî werin girtin û ji nû ve werin girtin
Ji kerema xwe not: Vîdyoyên ji navnîşek lîstika neçalak dê ji encamên lêgerînê, dîroka dîtinê û ji navnîşa bijare jî winda bibin. Lê xem neke, ew ê tavilê piştî ku lîstika lîstikê ji nû ve vebe li wir dîsa xuya bibin.
Vîdyoyek li navnîşa reş zêde bikin
Vîdyoyek astengkirî dê di pêşniyaran de, di encamên lêgerînê de neyê xuyang kirin û dê ji navnîşa bijare û ji dîroka dîtinê winda bibe. Vîdyo dê hîn jî di mîhengên lîsteya lîstikê de xuya bibe.
Lîsteya reş bibînin û tiştên ku bi xeletî hatine asteng kirin ji nû ve çalak bikin: Mîheng> menuya sernavê> Lîsteya reş
Vîdyoyên bijare û dîroka dîtinê
Vîdyoyên bijare yên li ser ekrana lîstikvanê bi stêrkek li quncika jorîn a rastê têne nîşankirin.
Pêşekên naverokê di sernavê ekranê de û li galerî û navnîşan dirêj-klîk bikin
Nav an navnîşana vîdyoyek an navnîşek lîstikê di dîmendera dîtinê de an di nav her navnîşek de kopî bikin.
Destpêka bilez - kanal û navnîşên lîstikê yên pêşniyarkirî zêde bikin
=>
Serlêdan dê tavilê mîna dîmenên li jor xuya bike.
Di mîhengan de kanal û lîsteyên lîstikê yên nehewce dikarin bêne girtin an jêbirin.
Ew ne li Google Play-ê ye û dê di demek nêzîk de nebe (Google serîlêdanên ku API-yê derbas dikin û malpera xwe pars dikin, di nav de navnîşa spî ya Kanalê ya navborî an lîstikvanê NewPipe jî tê de qedexe dike)
Bînin bîra xwe ku guheztina di navbera guhertoyên cihêreng ên ji çavkaniyên cihêreng ên li ser heman cîhazê de dê ji ber îmzeyên cihêreng ên pelê apk nexebite; berî ku guhertoya ji çavkaniyek nû saz bikin, hûn ê pêşî neçar bikin ku guhertoya sazkirî digel daneyan jêbirin - cache lîsteya lîstikê û dîroka gerokê (an jî fêm bikin ka meriv çawa daneyê veguhezîne).
Agahdariyên teknîkî
Hesabek Google/YouTube hewce nake, hûn tenê Înternetê hewce ne, pirtûkxaneyên jêrîn bikar tîne:
pirs: Ma bi gelemperî qanûnî ye ku meriv malperan bêyî destûr (an bi qedexeyek eşkere) ji nivîskaran veqetîne? Google sepanan ji Google Play radike, ku API-ya xwe bikar naynin, lê malperên xwe pars dikin, ji ber ew peymana bikarhênerê xwe binpê dikin. bersiv: bê guman, ew qanûnî ye, bi we ve girêdayî ye ku hûn kîjan amûrê bikar bînin da ku agahdariya gelemperî bixwînin. Wekî din: Dadgehek Amerîkî bi tevahî qanûnîkirina malperê qanûnî kiriye û destwerdana teknîkî jê re qedexe kiriye., lê dibe ku nêrînek din a Gul hebe, bi xwe ez hîna nexwestim ku ez biçim dadgeheke Amerîkî ku wan qanih bikim.
Hin kod
Pirtûkxaneyê NewPipeExtractor - projeya piştgiriya player Newpipe, dihêle hûn ji bo kanalek an navnîşek lîstikê navnîşek vîdyoyan dakêşin, agahdariya hûrgulî li ser vîdyoyek navdar dakêşin (ya ku li ser malpera vîdyoyê xuya dibe), navnîşana îkonê vîdyoyê bistînin, û her weha navnîşana vîdyoyê jî bistînin. herrok.
Koda ji bo barkirina lîsteya lîstikê piçek giran e, ji ber vê yekê ez ê li vir nadim, ji bo kesên eleqedar, li koda çavkaniyê binihêrin, ew bi bingehîn çînek e ContentLoader.
Ka em bibînin ka meriv çawa navnîşana weşanek vîdyoyê ji navnîşana rûpela vîdyoya gelemperî digire û wê di lîstikvanê de bilîze.
Meraq e ku piştî vê jî hûn ê nikaribin wê bikar bînin, ji ber ku ... nimûne dê li ser dersa Dakêşkerê winda gilî bikin. Ew dikare ji pelrêça testên otomatîkî li projeyê were kopî kirin NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - ji bo guhertoya 0.17.4 dixebite (xuya ye ku ev beş di guhertoyek nû ya pirtûkxaneyê de ji nû ve hatî çêkirin, lê dîsa jî pêdivî ye ku em kontrol bikin).
Navnîşana weşana vîdyoyê bi navnîşana rûpela vîdyoyê ya li ser malpera YouTube-ê bistînin:
Lîstik dê bibe exoplayer ji Google bixwe. Ev ne pêçek webê ye li ser YouTube, lê lîstikvanek rastîn a pêvekirî ye ji bo lîstina vîdyoyan, pir maqûl û xwerû. Di heman demê de heke hûn navnîşana rast peyda bikin, ew dikare vîdyoyên vîdyoyê ji YouTube-ê jî bilîze. Me tenê navnîşana weşanê wergirt, ji ber vê yekê em bibînin ka meriv wê çawa ji lîstikvan re bişîne.
Em ê hemî nuwazeyên danîna pêkhateya lîstikvanê li ser ekrana serîlêdanê nehesibînin (hûn dikarin li mînakan li ser malpera projeyê an di kodê de binihêrin), em ê tenê binihêrin ka meriv çawa dest bi lîstina vîdyoyek ji YouTube-ê di lîstikvanê de dike navnîşana ku li jor hatî wergirtin:
private void playVideoStream(final String streamUrl, final long seekTo) {
if (streamUrl == null) {
// остановить проигрывание текущего ролика, если был загружен
videoPlayerView.getPlayer().stop(true);
} else {
// https://exoplayer.dev/
// https://github.com/google/ExoPlayer
final Uri mp4VideoUri = Uri.parse(streamUrl);
final MediaSource videoSource = new ProgressiveMediaSource.Factory(videoDataSourceFactory)
.createMediaSource(mp4VideoUri);
// Поставим на паузу старое видео, пока готовим новое
if (videoPlayerView.getPlayer().getPlaybackState() != Player.STATE_ENDED) {
// Если ставить на паузу здесь после того, как плеер встал на паузу сам, закончив
// играть видео, получим здесь второе событие STATE_ENDED, поэтому нам нужна здесь
// специальная проверка.
// При этом значение getPlayWhenReady() останется true, поэтому проверяем именно состояние.
// https://github.com/google/ExoPlayer/issues/2272
videoPlayerView.getPlayer().setPlayWhenReady(false);
}
// Prepare the player with the source.
((SimpleExoPlayer) videoPlayerView.getPlayer()).prepare(videoSource);
// Укажем текущую позицию сразу при загрузке видео
// (в коментах что-то пишут что-то про датасорсы, которые поддерживают или не поддерживают
// переходы seek при загрузке, похоже, что это фигня - просто делаем seek сразу после загрузки)
// Exoplayer plays new Playlist from the beginning instead of provided position
// https://github.com/google/ExoPlayer/issues/4375
// How to load stream in the desired position? #2197
// https://github.com/google/ExoPlayer/issues/2197
// в этом месте нормлаьный duration еще не доступен, поэтому его не проверяем
//if(seekTo > 0 && seekTo < videoPlayerView.getPlayer().getDuration()) {
if (seekTo > 0) {
// на 5 секунд раньше
videoPlayerView.getPlayer().seekTo(seekTo - 5000 > 0 ? seekTo - 5000 : 0);
}
videoPlayerView.getPlayer().setPlayWhenReady(true);
}
}
Pirsgirêkên naskirî
Dê vîdyoyên bi tixûbên temen ên ku hewcedariya têketinê li hesabê xweya Google/YouTube-ê heye neleyze
şîret: Vîdyoyên weha li navnîşa reş zêde bikin an ji nivîskarê vîdyoyê bipirsin ku ew qedexeya ku bi xeletî hatî danîn rabike.
Hin vîdyoyên weşanê yên ku karûbar dirêjahiya wan sifir vedigerîne dê neyên lîstin (ji bo vîdeoyên weha, dirêjahiya di navnîşan û galeriyê de wekî "[dur undef]" tê nîşankirin)
Vîdyoyên ku tenê bi girêdanên rasterast têne peyda kirin dibe ku di navnîşa lîstika herêmî de neyên nav kirin, hetta hûn hemî vîdyoyên bikarhêner dakêşînin.
Ger hûn rastî vîdyoyek gelemperî ku têketinê hewce nake, di gerokê de dilîze, lê di lîstikvanê de naleyîze, raporek xeletiyê bişînin (mimkûn e ku pirsgirêk jixwe di guhertoya nû de hatî rast kirin NewPipeExtractor û hûn ê tenê hewce bikin ku civînê bi vê guhertoyê nûve bikin, bo nimûne).
Ger Înternet hêdî be (lê ne qut nebe) dibe ku navbeynkar hêdî bibe
Di encama vê çalakiyê,
Kurê min ji tabletê bar kir TV-ya smart Samsung, ku nikare serîlêdanên Android-ê bixebite. Ji ber vê yekê, çêtirîn kontrola dêûbavê hîn jî kesane ye.
Lê serîlêdan ji bo ku ez bixwe dest bi karanîna wê bikim ew qas hêsan bû. Bandora yekem ji guhertoyên xebatê yên destpêkê ev bû ku ez li cîhanek din bûm. Hemî naverok ji YouTube tê daxistin, lê ev êdî ne YouTube ye, lê tiştek din e, ewledar û kontrolkirî ye, mîna ku we santîpek ji çavê xwe derxîne û têxe qurmek cam. Û ew hemî li ser pêşniyaran e.