හැඳින්වීම කෙටියි: මට දේශීය ධාවන ලැයිස්තු, නාලිකා සහ නිර්දේශ සමඟ Android සඳහා YouTube සබැඳි ක්රීඩකයා ගැන කතා කිරීමට අවශ්යයි.
පුළුල් කළ හැඳින්වීම:
කලකට පෙර මම අපූරු යෙදුමක කතුවරයාට සමාන ගැටලුවකට මුහුණ දුන්නා
අවාසනාවකට, චැනල් වයිට්ලිස්ට් යෙදුම ස්ථාපනය කිරීමෙන් පසුව, තවත් ප්රොසෙයික්, නමුත් තවමත් මාරාන්තික දෝෂයක් සොයා ගන්නා ලදී - NIH I (සහ, වඩාත්ම වැදගත්, මගේ පුතා) එහි අතුරු මුහුණත එතරම් පහසු නොවන බව සොයා ගත්තේය, විශේෂයෙන් යූ ටියුබ් කිඩ්ස් ප්ලේයරය භාවිතා කිරීමේ පුරුද්දෙන් පසුව.
පොදුවේ ගත් කල, ටික කලකට පසු මම මගේම ක්රියාත්මක කිරීමට සූදානම්ව සිටියෙමි. ටික වේලාවකට පසු, පළමු නිකුතුවට ටැග් එකක් දැමීමට හැකි විය.
ප්රධාන අංග:
- ඔබගේ ප්රියතම නාලිකා සහ ධාවන ලැයිස්තු එක් කරන්න - ඒවා දේශීය දත්ත ගබඩාවේ සුරකින අතර සුචිගත කෙරේ
- එකතු කළ ධාවන ලැයිස්තු තුළ, ඔබට ඒවා අවශ්ය නැතිනම් අනවශ්ය වීඩියෝ අක්රිය කරන්න
- නිර්දේශ ලැයිස්තුව අහඹු ලෙස ජනනය වන්නේ යෙදුමට එකතු කරන ලද නාලිකා සහ ධාවන ලැයිස්තු වලින් පමණි
විවෘත මූලාශ්රය, GPLv3 බලපත්රය:
පහත දැක්වෙන්නේ Google API සහ web wrappers භාවිතා නොකර ඔබේ Android යෙදුමේ YouTube වීඩියෝ වාදනය කරන ආකාරය පිළිබඳ තාක්ෂණික විස්තර සහ වඩාත් විස්තරාත්මකව ප්රධාන විශේෂාංග පිළිබඳ දළ විශ්ලේෂණයකි.
ප්රධාන තිරයේ සහ ක්රීඩක තිරයේ: අහඹු නොවන නාලිකා වලින් අහඹු නිර්දේශ
දේශීය දත්ත ගබඩාවේ ක්ෂණික සෙවීම
නව නාලිකාවක් හෝ ධාවන ලැයිස්තුවක් එක් කරන්න
අන්තර්ජාලයේ නම අනුව සොයන්න හෝ දන්නා ලිපිනයක් ඇතුළු කරන්න. නාලිකාවක හෝ ධාවන ලැයිස්තුවේ වීඩියෝ ලැයිස්තුව දේශීය දත්ත ගබඩාවට සුරැකේ; අයිකන හැඹිලිගත නොවේ.
ගතික ධාවන ලැයිස්තුව - සෙවුම් ප්රතිඵල වාදනය කරන්න
වීඩියෝ නිර්දේශ තුළ සෙවුම් විමසුම තෘප්තිමත් කරන වීඩියෝ පමණක් ඇත.
ඒ හා සමානව, ඔබ ධාවන ලැයිස්තු සැකසීම් වලින් වීඩියෝවක් විවෘත කළහොත්, එම ධාවන ලැයිස්තුවේ වීඩියෝ පමණක් නිර්දේශ ලැයිස්තුවේ දිස්වනු ඇත.
ධාවන ලැයිස්තු සහ නාලිකා තාවකාලිකව අක්රිය කර නැවත ක්රියාත්මක කළ හැක
කරුණාකර සටහන් කරන්න: අබල කළ ධාවන ලැයිස්තුවේ වීඩියෝ සෙවුම් ප්රතිඵල, බැලීමේ ඉතිහාසය සහ ප්රියතම ලැයිස්තුවෙන් ද අතුරුදහන් වනු ඇත. නමුත් කරදර නොවන්න, ධාවන ලැයිස්තුව නැවත ක්රියාත්මක වූ වහාම ඒවා නැවත එහි දිස්වනු ඇත.
අසාදු ලේඛනයට වීඩියෝවක් එක් කරන්න
අවහිර කළ වීඩියෝවක් නිර්දේශවල, සෙවුම් ප්රතිඵලවල නොපෙන්වන අතර, ප්රියතම ලැයිස්තුවෙන් සහ බැලීමේ ඉතිහාසයෙන් අතුරුදහන් වනු ඇත. වීඩියෝව තවමත් ධාවන ලැයිස්තු සැකසීම් තුළ දෘශ්යමාන වනු ඇත.
අසාදු ලේඛනය බලන්න සහ වැරදීමකින් අවහිර වූ අයිතම නැවත සක්රීය කරන්න:
සැකසීම් > ශීර්ෂ මෙනුව > කළු ලැයිස්තුව
ප්රියතම වීඩියෝ සහ බැලීමේ ඉතිහාසය
ක්රීඩක තිරයේ ප්රියතම වීඩියෝ ඉහළ දකුණු කෙළවරේ තරු ලකුණකින් සලකුණු කර ඇත.
තිර මාතෘකාවේ සන්දර්භය මෙනු සහ ගැලරි සහ ලැයිස්තු තුළ දිගු ක්ලික් කරන්න
නරඹන තිරයේ හෝ ඕනෑම ලැයිස්තුවක වීඩියෝවක හෝ ධාවන ලැයිස්තුවේ නම හෝ ලිපිනය පිටපත් කරන්න.
ඉක්මන් ආරම්භය - නිර්දේශිත නාලිකා සහ ධාවන ලැයිස්තු එක් කරන්න
යෙදුම වහාම ඉහත තිරපිටපත් මෙන් පෙනෙනු ඇත.
සැකසීම් තුළ අනවශ්ය නාලිකා සහ ධාවන ලැයිස්තු අක්රිය කිරීමට හෝ මකා දැමීමට හැකිය.
ස්ථාපනය
ව්යාපෘති පිටුව:
ඉංග්රීසියෙන්:
නිකුත් කිරීම්:
- එය Google Play හි නොමැති අතර නුදුරු අනාගතයේ සිදු නොවනු ඇත (Google API මඟහැර ඔවුන්ගේ වෙබ් අඩවිය විග්රහ කරන යෙදුම් තහනම් කරයි, සඳහන් කළ Channel Whitelist හෝ NewPipe player)
- මූලාශ්රවලින් ගොඩනඟන්න:
https://github.com/sadr0b0t/yashlang/ - නිකුතු අංශයෙන් apk බාගන්න:
https://github.com/sadr0b0t/yashlang/releases - ටික වේලාවකට පසු එය නාමාවලියෙහි දිස්වනු ඇතැයි මම බලාපොරොත්තු වෙමි
F-Droid (එකතු කිරීම සඳහා වන අයදුම්පත අනුමත කර ඇති බව පෙනේ , නමුත් මාසයකට ආසන්න කාලයක් තව දුරටත් ගමන් කර නැත), නමුත් තවමත් නැත
එකම උපාංගයේ විවිධ ප්රභවයන්ගෙන් විවිධ අනුවාද අතර මාරුවීම apk ගොනුවේ විවිධ අත්සන් හේතුවෙන් ක්රියා නොකරන බව මතක තබා ගන්න; නව ප්රභවයකින් අනුවාදය ස්ථාපනය කිරීමට පෙර, ඔබට පළමුව දත්ත සමඟ ස්ථාපිත අනුවාදය මකා දැමිය යුතුය - ධාවන ලැයිස්තු හැඹිලිය සහ ගවේෂණ ඉතිහාසය (හෝ දත්ත මාරු කරන්නේ කෙසේදැයි සොයා බලන්න).
තාක්ෂණික තොරතුරු
Google/YouTube ගිණුමක් අවශ්ය නොවේ, ඔබට අවශ්ය වන්නේ අන්තර්ජාලය පමණි, පහත පුස්තකාල භාවිතා කරයි:
NewPipeExtractor YouTube සේවාවෙන් දත්ත ලබා ගැනීමට සහexoplayer වීඩියෝ වාදනය කිරීමට.
විවෘත මූලාශ්රය, නොමිලේ GPLv3 බලපත්රය.
ප්රශ්නය: කතුවරුන්ගේ අවසරයකින් තොරව (හෝ පැහැදිලි තහනමක් සහිතව) වෙබ් අඩවි සීරීමට සාමාන්යයෙන් නීත්යානුකූලද?
පිළිතුර: ඇත්ත වශයෙන්ම, එය නීත්යානුකූලයි, ප්රසිද්ධියේ ලබා ගත හැකි තොරතුරු කියවීමට කුමන මෙවලම භාවිතා කළ යුතුද යන්න ඔබට භාරයි. තවද:
සමහර කේතය
පුස්තකාලය
ධාවන ලැයිස්තුව පූරණය කිරීමේ කේතය ටිකක් අපහසුයි, එබැවින් මම එය මෙහි නොදෙමි, උනන්දුවක් දක්වන අය සඳහා, මූලාශ්ර කේතය දෙස බලන්න, එය මූලික වශයෙන් පන්තියකි
අපි බලමු කොහොමද වීඩියෝ ප්රවාහයක ලිපිනය පොදු වීඩියෝ පිටුවේ ලිපිනයෙන් ලබාගෙන එය ප්ලේයර් එකේ වාදනය කරන්නේ කියලා.
පුස්තකාලය සම්බන්ධ කරන්න
dependencies {
...
// NewPipe: youtube parser
// https://github.com/TeamNewPipe/NewPipeExtractor
implementation "com.github.TeamNewPipe:NewPipeExtractor:v0.17.4"
...
}
මෙයින් පසු ඔබට තවමත් එය භාවිතා කිරීමට නොහැකි වීම කුතුහලයට කරුණකි, මන්ද ... උදාහරණ නැතිවූ බාගැනීම් පන්තිය ගැන පැමිණිලි කරනු ඇත. එය ස්වයංක්රීය පරීක්ෂණ නාමාවලියෙන් ව්යාපෘතියට පිටපත් කළ හැක
YouTube වෙබ් අඩවියේ වීඩියෝ පිටුවේ ලිපිනය මගින් වීඩියෝ ප්රවාහයේ ලිපිනය ලබා ගන්න:
public String extractYtStreamUrl(final String ytVidUrl) throws ExtractionException, IOException {
// https://github.com/TeamNewPipe/NewPipeExtractor/blob/dev/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDefaultTest.java
NewPipe.init(Downloader.getInstance(), new Localization("GB", "en"));
final YoutubeStreamExtractor extractor = (YoutubeStreamExtractor) YouTube
.getStreamExtractor(ytVidUrl);
extractor.fetchPage();
final String streamUrl = extractor.getVideoStreams().size() > 0 ? extractor.getVideoStreams().get(0).getUrl() : null;
// for (final VideoStream stream : extractor.getVideoStreams()) {
// stream.getUrl();
// }
return streamUrl;
}
ytVidUrl වීඩියෝ ලිපිනය YouTube වෙබ් අඩවියේ ඕනෑම වීඩියෝවක පිටුවක පොදු ලිපිනය විය හැක, උදාහරණයක් ලෙස
ක්රීඩකයා වනු ඇත
ව්යාපෘතියට පුස්තකාලය සම්බන්ධ කරන්න
dependencies {
...
// google Exoplayer
// https://github.com/google/ExoPlayer
// https://exoplayer.dev/
implementation 'com.google.android.exoplayer:exoplayer:2.10.8'
...
}
යෙදුම් තිරය මත ක්රීඩක සංරචකය තැබීමේ සියලු සූක්ෂ්ම කරුණු අපි සලකා බලන්නේ නැත (ඔබට ව්යාපෘති වෙබ් අඩවියේ හෝ කේතයේ උදාහරණ දෙස බැලිය හැකිය), අපි බලන්නේ යූ ටියුබ් වෙතින් වීඩියෝවක් වාදනය කිරීම ආරම්භ කරන්නේ කෙසේද යන්න පමණි. ඉහත ලැබුණු ලිපිනය:
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);
}
}
දන්නා ගැටළු
- ඔබගේ Google/YouTube ගිණුමට පුරනය වීමට අවශ්ය වයස් සීමා සහිත වීඩියෝ වාදනය නොකරනු ඇත
උදාහරණයක් ලෙස:
උපදෙස්: එවැනි වීඩියෝ අසාදු ලේඛනයට එක් කරන්න හෝ වැරදීමකින් සකසා ඇති සීමාව ඉවත් කරන ලෙස වීඩියෝවේ කතුවරයාගෙන් ඉල්ලා සිටින්න.
- සේවාව ශුන්ය දිග ලබා දෙන සමහර විකාශන වීඩියෝ වාදනය නොවේ (එවැනි වීඩියෝ සඳහා, ලැයිස්තු සහ ගැලරියේ කාලසීමාව “[dur undef]” ලෙස සලකුණු කර ඇත)
උදාහරණයක් ලෙස:
උපදෙස්: එවැනි වීඩියෝ අසාදු ලේඛනයට එක් කරන්න.
- ඔබ පරිශීලකයාගේ සියලුම වීඩියෝ බාගත කළත්, සෘජු සබැඳි හරහා පමණක් ලබා ගත හැකි වීඩියෝ දේශීය ධාවන ලැයිස්තුවට ඇතුළත් නොවිය හැකිය
උදාහරණයක් ලෙස:
-
ඔබට පිවිසීමක් අවශ්ය නොවන, බ්රව්සරයේ වාදනය වන නමුත් ක්රීඩකයා තුළ වාදනය නොකරන පොදු වීඩියෝවක් ඔබ දුටුවහොත්, දෝෂ වාර්තාවක් යවන්න (නව අනුවාදයේ ගැටලුව දැනටමත් විසඳා ඇති බව බොහෝ දුරට ඉඩ ඇත. NewPipeExtractor ඔබට අවශ්ය වන්නේ මෙම අනුවාදය සමඟ එකලස් කිරීම යාවත්කාලීන කිරීම පමණි,
උදාහරණයක් ලෙස ). -
අන්තර්ජාලය මන්දගාමී නම් අතුරු මුහුණත මන්දගාමී විය හැක (නමුත් අක්රිය නොවේ)
එහි ප්රතිඵලයක් ලෙස,
මගේ පුතා ටැබ්ලටයක සිට ඇන්ඩ්රොයිඩ් යෙදුම් ධාවනය කළ නොහැකි Samsung ස්මාර්ට් රූපවාහිනියකට මාරු විය. එමනිසා, හොඳම මාපිය පාලනය තවමත් පුද්ගලිකයි.
නමුත් යෙදුම මා විසින්ම භාවිතා කිරීම ආරම්භ කිරීමට තරම් පහසු විය. මුල් වැඩ කරන අනුවාද වලින් පළමු හැඟීම වූයේ මම වෙනත් ලෝකයක සිටින බවයි. සියලුම අන්තර්ගතයන් යූ ටියුබ් වෙතින් බාගත කර ඇත, නමුත් මෙය තවදුරටත් යූ ටියුබ් නොවේ, නමුත් ඔබ ඔබේ ඇසෙන් සෙන්ටිපීඩයක් ඉවතට ගෙන වීදුරු බඳුනක තැබුවාක් මෙන් ආරක්ෂිත සහ පාලනය කළ හැකි වෙනත් දෙයක්. ඒ සියල්ල නිර්දේශ මත ය.
මූලාශ්රය: www.habr.com