باستخدام VideoView لتدفق أو تقدمية تحميل الفيديو
-
20-09-2019 - |
سؤال
وأنا الخلط حول كيفية استخدام VideoView لتشغيل الفيديو: من ملف محلي، والتنزيل التدريجي وتدفق
هذا المثال العمل بالنسبة لي (على 1.5 و 2.0 على الأقل) عن طريق تحميل الملف وتشغيله محليا.
ولكن هل من الضروري لتحميل الفيديو قبل اللعب: هل من الممكن للعب الفيديو وتحميل التدريجي، أو الجري، ببساطة عن طريق استخدام setVideoPath أو setVideoURI، كما هو الحال في VideoViewDemo في العينات API
والرمز VideoViewDemo يوحي باستخدام setVideoURI لتدفق، ولكن أنا ليس من الواضح ما هو نوع من URL أرجو أن تستخدم. هل هناك شخص ما URL سبيل المثال لالفيديو التي يمكن المتدفقة إلى الروبوت المحاكي باستخدام رمز VideoViewDemo؟
ويمكن أن تستخدم التنزيل التدريجي مع VideoViewDemo؟ أحصل على رسالة "آسف، هذا الفيديو لا يمكن أن تقوم" باستخدام setVideoPath مع عناوين URL التي تعمل بشكل جيد مع المثال بلوق مرتبطة أعلاه. (هل هذه مشكلة في المحاكي؟ لقد حاولت 1.5 و 2.0).
ولقد وجدت الكثير من الأمثلة والوثائق على الانترنت ولكن، حتى الآن، لا شيء أن يجيب على هذا السؤال حقا.
المحلول
هل من الممكن لتشغيل الفيديو كما التحميل التصاعدي، أو الجري، ببساطة عن طريق استخدام setVideoPath أو setVideoURI، كما هو الحال في VideoViewDemo في العينات API؟
اقتباس فقرة> ووينبغي. وهو يعمل بالتأكيد مع MediaPlayer
، وVideoView
هو مجرد غلاف ~ 200 خط حول MediaPlayer
وSurfaceView
.
والرمز VideoViewDemo يوحي باستخدام setVideoURI لتدفق، ولكن أنا لا مسح أي نوع من URL يجب أن أكون استخدام.
اقتباس فقرة> وhttp://
وrtsp://
يمكن أن تنجح، إذا تم ترميز الفيديو بشكل صحيح.
هل شخص لديهم URL سبيل المثال ل الفيديو التي يمكن المتدفقة إلى محاكي الروبوت باستخدام كود VideoViewDemo؟
اقتباس فقرة> هذا الفيديو يعمل مع MediaPlayer
، إلا على نيكزس واحد.
تعديل : ل. في الواقع، التي تصل يعمل مع نيكزس واحد، وكذلك
نصائح أخرى
وكان يعمل لحالات بسيطة، ولكن فقط عندما لا تكون هناك حاجة لإجراء بعض الاستعدادات مخصص لطلبات للحصول على تيار.
وهذا يظهر البرنامج التعليمي مثال على تدفق مضاهاة اليدوي لصوتي ولكنه يمكن أن يكون قليلا بتعميل الترميز لتشغيل الفيديو:
و(تأكد من استخدام FileDescriptor
عند وضع dataSource
، تم تغيير API قليلا من تلك الأوقات).
وVideoView لا يمكن إلا أن أشرطة الفيديو ستريم 3GP لكن أوصي هذا الرمز إلى دفق الفيديو الخاص بك
public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.main);
String videourl = "http://something.com/blah.mp4";
Uri uri = Uri.parse(videourl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setDataAndType(uri, "video/mp4");
startActivity(intent);
}