يمكنك أن تجادل لفترة طويلة حول موضوع ما إذا كان الأمر يستحق منح الأطفال الصغار إمكانية الوصول إلى الأجهزة اللوحية والهواتف الذكية. يقول شخص ما أنه ضار للعيون أو النفس ، شخص ما - أن الآباء يجب أن يلعبوا ويقرؤوا مع أطفالهم بأنفسهم ، ولا يحاولوا إبعادهم بالأدوات. ما هو مميز ، غالبًا ما يقال هذا من قبل أشخاص ليس لديهم أطفالهم. ولا يعرفون ما هو النعيم - عندما يسكت الطفل لمدة نصف ساعة على الأقل ، يتوقف عن تدمير كل شيء حوله ، يستلقي بهدوء على الأريكة ويشاهد الرسوم المتحركة. هناك حجة أخرى - الأطفال يكررون كل شيء بشكل حساس بعد الوالدين ، إذا كان الوالدان يجلسان باستمرار بأيديهما على الهاتف ، فمن الصعب جدًا أن يشرح للأطفال لماذا يمكن للوالدين ذلك ولا يفعلون.

بشكل عام ، يمكنك رمي الطماطم الفاسدة ، لكن ابني ، الذي لم يعد لديه يومين لبضعة أعوام ، يجلس أحيانًا مع جهاز لوحي على الأريكة ويشاهد الرسوم المتحركة على YouTube.
لسوء الحظ ، أدركت بسرعة أن YouTube للأطفال مجرد HELLY TRASH. حتى حول حبري كان هناك بالفعل ترجمة للمقال . قنوات الأطفال هي نوع من أحواض المياه التي لا نهاية لها المليئة بمقاطع الفيديو vyrviglaznymi مثل "نشر مائة مفاجأة كيندر" و "القوافي الغبية برسومات ثلاثية الأبعاد البائسة للموسيقى الصاخبة" و "دفع السيارات في Beam NG إلى التعليقات الغبية". لسبب ما ، كل هذا جذاب جدًا للأطفال الصغار الذين يسارعون إلى النقر على مقاطع الفيديو هذه بمجرد رؤيتها في مقاطع الفيديو الموصى بها. ويوتيوب لا يسمح لك بإدارة التوصيات. حتى عندما أعطيت ابني جهازًا لوحيًا باستخدام الرسوم المتحركة "العادية" ، فقد شاهدت بعد بضع دقائق كيف يجد بيض الشوكولاتة الملعون مرة أخرى بنقرتين على التوصيات ويبدأ في الالتصاق بها مرة أخرى.
قررت هذا يكفي بالنسبة لي. وبدأ في رؤية طلبه لمشاهدة YouTube ، مما يسمح لك بتحديد قائمة القنوات وعرض الفيديو فقط من هذه القنوات. كيف فعلت ذلك - تحت القطع.
هنا مثال واحد على فيديو هائج سنقاتل معه. قام Shitty بعمل رسوم متحركة ثلاثية الأبعاد لا معنى لها للموسيقى الغبية - و 142 مليون مشاهدة. لسبب ما ، يتم ببساطة تحميل مقاطع الفيديو هذه للأطفال ؛ وهم على استعداد لمراجعتها وتنقيحها.
للمقارنة ، أروع فيديو حيث يغني كريس هادفيلد على غيتار على محطة الفضاء الدولية لديه 40 مليون مشاهدة فقط ، ومقطع OK GO الرائع بجاذبية صفرية حقيقية (بدون كابلات و chromakey ، فقط جاذبية صفر صادقة على متن طائرة خاصة) - فقط 12 مليون ، عشر مرات أقل.
بالمناسبة ، فإن المعلنين على موقع YouTube أنفسهم ليسوا سعداء بشعبية قنوات الأطفال ، لأن عرض الإعلانات عليها هو مضيعة للميزانيات. يشاهد الأطفال الإعلانات ، حتى ينقرون أحيانًا ، لكنهم لا يشترون أي شيء ، وتنفق ملايين المشاهدات الميزانية بسرعة.
بيان المشكلة
يجب أن أقول على الفور أنني لم أحدد مهمة تقديم طلب لا يمكن اختراقه للأطفال. مثل هذه المحاولات موجودة بالفعل ، بما في ذلك هنا على المحور - يتم قطع كل شيء هناك على التوالي ، بحيث لا يستطيع الطفل الخروج من التطبيق ، وشراء شيء ما ، وفتح متصفح ، وما إلى ذلك. هناك خيارات مع أقفال الأجهزة والمنافذ المعطلة وقذائف Android المخصصة والصعوبات الأخرى (على سبيل المثال ، هنا مقال لعام 2012 ، يبدو أن المشروع لا يزال على قيد الحياة). ولكن كل هذا منطقي للأطفال الأكبر سنًا الذين يستكشفون بالفعل إمكانيات أدواتهم. بالنسبة للأطفال الذين تتراوح أعمارهم بين عامين و 3 أعوام ، ليست هناك حاجة إلى حماية خاصة ، فهم سعداء جدًا بمشاهدة مقاطع الفيديو ومن وقت لآخر في معاينة مقاطع الفيديو الأخرى. الشيء الرئيسي هو أن مقاطع الفيديو هذه يجب أن تكون ما تحتاجه ، وليس ما سيقدمه YouTube (وسيقدم بيض شوكولاتة لا حصر له وأصابع أطفال).
من هذا جاءت قائمة المتطلبات:
- قائمة القنوات المخصصة
- حمايته من التغييرات (بدلاً من التغييرات العرضية ، لأن الأطفال الكبار الماكرة لديهم بالفعل مجموعة من الطرق لتحديد كلمات مرور والديهم)
- التطبيق نفسه مشابه لـ YouTube ، فهو يشغل الفيديو على اليسار ، على اليمين يوجد عمود من الصور المصغرة التي يمكنك النقر عليها
- حالة الاستخدام الرئيسية هي النقر العشوائي من خلال الفيديو ، ولا يهتم الطفل بشكل عام بما يجب مشاهدته
في الوقت نفسه ، يتألف التطبيق من جزأين رئيسيين: البحث عن القنوات وإعدادها باستخدام YouTube Data API ثم تشغيل الفيديو. علاوة على ذلك ، وجدت حاليًا خيارين لتشغيل الفيديو داخل تطبيقي الخاص:
يوتيوب الروبوت لاعب API
https://developers.google.com/youtube/android/player/
هذه هي الطريقة الرسمية لتشغيل مقاطع الفيديو في تطبيق Android الخاص بك. لكي يعمل على جهاز المستخدم ، يجب تثبيت تطبيق YouTube الرسمي بالفعل ، والذي يتضمن في تكوينه خدمة معينة يمكن استخدامها من تطبيقات أخرى. لذا فإن واجهة برمجة تطبيقات Player هذه هي مكتبة صغيرة تتفاعل مع تطبيق مثبت بشكل منفصل.
في البداية ، استخدمته ، ولكن بعد فترة من الاستخدام تبين أنه يعاني من مشكلة حرجة. لا يمكنك حقًا تخصيص مظهر اللاعب فيه ، على وجه الخصوص ، التحكم في الأزرار (يمكنك فقط إخفاء الأمر بالكامل على الإطلاق ، ولكن بعد ذلك ستفقد أيضًا زر وضع ملء الشاشة). وعلى لوحة تحكم المشغل يوجد زر سيء "انتقل إلى العرض على YouTube" يفتح التطبيق الرسمي (الذي يجب أن يكون على الجهاز) ، والذي لم يعد هناك تصفية. والأطفال بسهولة (عن طريق الصدفة أو لا) ينقرون عليها ، ويذهبون إلى التطبيق غير المصفي ، وبعد بضع دقائق أسمع بالفعل "إصبع طفل ، إصبع طفل أين أنت" مرة أخرى وأرى نوعًا من التواء العين الملتوية على الشاشة.
المزيد من القمامة التي يجدها الأطفال في بضع نقرات. أكثر من 900 مليون مشاهدة!
لذلك ، رفضت اللاعب الرسمي ، فوجدته بديلاً في شكل المكتبة التالية.
أندرويد يوتيوب بلاير
https://github.com/PierfrancescoSoffritti/android-youtube-player
يبدو أن المكتبة مجمعة حول WebView تتحكم في مشغل الويب من خلال واجهة برمجة تطبيقات JavaScript. من الفوائد - القدرة على تخصيص الواجهة بالكامل.
تهيئة المشغل غير واضحة بعض الشيء ، خاصة بعد التبديل من المكتبة الرسمية:
- احصل على وجهة نظرنا من فئة com.pierfrancescosoffritti.androidyoutubeplayer.player.YouTubePlayerView
- اتصل بها بتهيئة () ، لتمرير المستمع
- يتم استدعاء أسلوب onInitSuccess (Nonnull final YouTubePlayer youTubePlayer) على المستمع ، الذي يتلقى نسخة من كائن المشغل. هذه هي الطريقة الوحيدة للحصول عليها. حتى هذه اللحظة ، كانت عملية التهيئة مماثلة لعملية العميل الرسمي
- نسمي طريقة addListener () على المشغل ، بتمرير مستمع آخر إليه (المزيد من المستمعين إلى إله المستمع!)
- يتم استدعاء طريقة onReady () في هذا المستمع - فقط بعد هذه اللحظة يمكنك تنزيل وعرض الفيديو واستخدام المشغل. إذا حاولت عن طريق الخطأ تحميل شيء ما في onInitSuccess ، فستبدأ المكتبة بصق أخطاء غريبة.
يمكنك التحكم في دورة حياة اللاعب (إيقاف التشغيل في onPause () وكل شيء من هذا القبيل) يدويًا ، أو يمكنك تسجيل رؤيتنا كمراقب دورة حياة (التي يجب أن يرث نشاطنا من AppCompatActivity). في هذه الحالة ، ستتولى المكتبة الروتين بأكمله.
هناك فارق بسيط آخر غريب في المكتبة هو عدم وجود دعم ملء الشاشة خارج الصندوق. يوجد زر لها بشكل افتراضي في المشغل ، لكنه لا يفعل شيئًا. في الواقع ، يجب عليك القيام بوضع ملء الشاشة يدويًا - إخفاء الرجل ، تكبير نافذة المشغل إلى وضع ملء الشاشة ، ثم استعادة كل شيء مرة أخرى. قد يتبين أن هذا غير بديهي تمامًا إذا كان لديك نوع من الواجهة المعقدة حول المشغل. لم يكن لدي سوى قائمة بالفيديوهات ، والتي يمكن إخفاؤها يدويًا بسهولة.
في عينات المكتبة ، هناك فئة FullScreenHelper ، والتي يمكنك من خلالها أخذ الرمز المطلوب. يبدو استخدامه مثل هذا:
youTubePlayerView.addFullScreenListener(new YouTubePlayerFullScreenListener() {
private final View rootLayout = findViewById(R.id.rootLayout);
@Override
public void onYouTubePlayerEnterFullScreen() {
fullScreenHelper.enterFullScreen();
rootLayout.setPadding(0, 0, 0, 0);
}
@Override
public void onYouTubePlayerExitFullScreen() {
fullScreenHelper.exitFullScreen();
rootLayout.setPadding(8, 8, 8, 8);
youTubePlayerView.getLayoutParams().height = LinearLayout.LayoutParams.MATCH_PARENT;
}
});
FullScreenHelper . ( , ) - , .
- , — . " YouTube", :
youTubePlayerView.getPlayerUIController().showFullscreenButton(true);
youTubePlayerView.getPlayerUIController().showYouTubeButton(false);
, , View .. — .
youTubePlayer.loadVideo(url, startTime);
, YouTube Data API
URL - . YouTube API, . Developer Console .
: . - , "Peppa Pig". id ( id) snippet : , -, .
YouTube.Search.List searchListByKeywordRequest = youTube.search().list("snippet,id");
searchListByKeywordRequest.setMaxResults(10L);
searchListByKeywordRequest.setQ("Peppa Pig");
searchListByKeywordRequest.setType("channel,playlist");
searchListByKeywordRequest.setKey("<api key>");
SearchListResponse response = searchListByKeywordRequest.execute();
( snippet id) . YouTube API : , . - ( , ), . , . .. 5 ( 2 sinppet id). , 6 , 13. 10 , 21 . , .
:
YouTube.Search.List request = youTube.search().list("snippet,id");
request.setChannelId("<channel id>");
request.setType("video");
request.setMaxResults(50L);
request.setKey("<api key>");
SearchListResponse response = request.execute();
, , nextPageToken, — , .
if (response.getNextPageToken() != null) {
request.setPageToken(response.getNextPageToken());
response = request.execute();
}
API , , ..
, , . , Google Play . :
- . . " " ("" " "), - .
- — . , " ", , .
- . , , — .
- . " ", , .
- .
- Pinned Mode — , .
- — https://play.google.com/store/apps/details?id=ru.sundogs.youtubekiosk , — . — . , , .
, , , - ( ), . — , . .
UPD: , . — , . Play Market ""
UPD2: , . , , .
UPD3: , : https://channelwhitelist.tilda.ws. , !