دسته: آموزش برنامه نویسی اندروید
0 Votes05 
امتیاز کاربران
ضعیفعالی 

در بیشتر پروژه هایی که لازم است ویدیو استریم شود ، مثلا توسط VideoView پخش شوند، لازم است اندازه ویدئو در صفحه fit  باشد ولی وقتی فیلم پخش میشود اندازه فیلم(ویدئو) resize میشود. فرضاً اگه سایز تصویر ۴*۳ و ۹*۱۶ باشد این حالت اتفاق می افتد.در این آموزش ما یک فیلم را Play میکنیم و سایز تصویر(فیلم) را به اندازه صفحه fit  قرار میدهیم.

ابتدا یک پروژه را ایجاد می کنیم و یک ویجت videoView را برای پخش ویدوئو قرار می دهیم.

 

نکته ۱ : در خط های ۸ و ۹ اندازه ویجت را به اندازه کل صفحه نمایش قرار داده ایم ولی بعد از پخش ویدئو resize میشود.

نکته ۲ : ایمولاتور اندروید توانایی پخش فیلم را ندارد برای اینکار باید از یک دیوایس واقعی مثلا گوشی، تبلت، ستاپ باکس یا … استفاده شود.

ابتدا یک ویدئو که در سایت یوتیوب قرار دارد پخش میکنیم سپس aspect ratio را روی آن اعمال میکنیم.

برای اطلاعات بیشتر در مورد ویجت VideoView به لینک داده شده مراجعه فرمایید.

 

خط ۲۰ : آدرس مربوط به ویدئو قرار دارد.

خط ۲۷: آدرس Uri را به ویجت اعمال میکنیم.

خط ۲۸ : کنترل MediaControler را به ویجت ست میکنیم. (بیشتر برای  جلو – عقب بردن زمان ویدئو کاربرد دارد)

خط ۳۱ : ویدئو پخش میشود.

بعد از اینکارها ویدئو  یا  استریمینگ پخش میشود ولی سایز مربوط به تصویر resize  میشود. برای اینکار یا باید تصویر را strech کرد که در اینصورت تصویر کیفیت خود را از دست داده و همه تصاویر فیلم کشیده تر از حالت عادی به نظر میرسند.

برای حل این مشکل باید از  Aspect Ratio استفاده کرد تا تصویر براساس نوع شبکه ای که استریم میشود نشان داده شود. به طور مثال شبکه هایی که ۴*۳ هستند بصورت استاندارد خود نشان داده میشوند.

راه حل :

مرحله ۱ : ابتدا باید اندازه صفحه نمایش گرفته شود چراکه نباید اندازه بصورت دستی داده شود تا در هر صفحه نمایشی به درستی کار کند.

مرحله ۲ : اگر اندازه ویدئو کمتر از اندازه صفحه بود، ارتفاع را برابر صفحه نمایش قرار میدهیم.

 

خط ۳۴ :برای تغییر اندازه سایز تصویر از کلاس viewgroup استفاده میکنیم.

خط ۳۵ : با این کلاس اندازه صفحه نمایش را بدست می آوریم.

خط ۳۸ :  ارتفاع صفحه نمایش در متغیر قرار میگیرد.

خط ۳۹ : عرض صفحه نمایش در متغیر قرار میگیرد.

خط ۴۱ : ارتفاع پلیر را میگیریم.

خط ۴۶ : اگر ارتفاع  پلیر کمتر یا مساوی ارتفاع  صفحه نمایش بود و همچنین عرض پلیر کمتر از عرض صفحه نمایش باشد، شرط درست اجرا میشود.

خط ۵۳ : اندازه های بدست آمده را به پلیر نسب میدهیم.

همچنین در فایل AndroidManifest به Permission، اینترنت نیاز داریم.

دانلود کد برنامه

جوملا فارسی