پخش ویدیو در اندروید با استفاده از VideoView

منتشرشده توسط حامد قنبری در تاریخ

کلاس VideoView یک  ویوی است که با استفاده از ان می توانیم فایل های ویدئویی خود را در برنامه های اندرویدی مدیریت و نمایش دهیم. VideoViews می تواند فیلم ها را از فایل های منبع  یا res پروژه ، ارائه دهندگان محتوا یا آدرس مشخص شده URLپخش کند. توجه کنیم که یک  VideoView  قادر نیست در حالت پس زمینه حالت کامل و موقعیت کنونی خود را حفظ نمی کند. tgbh برنامه های کاربردی باید آنها را در( onSaveInstanceState (Bundle و( onRestoreInstanceState (Bundle ذخیره و بازیابی کنند.

در اندروید فرمت های قابل قبول برای پشتیبانی در این ویو عبارتند از:3GP – MP4 – فقط با کدک H.263، H.264، H.264.

در زیر برخی از متدهای مورد استفاده در این ویو را به اختصار بیان می کنیم.

()setVideoURI  – این متد برای تعیین مسیر URL استفاده می شود. نیاز به یک URI دارد.

()setVideoPath  –   از این متد برای پخش فایل ویدیویی از مسیرهای محلی استفاده می شود.

() start این متد دستور پخش ویدیو را می دهد

()stopPlayback    این متد دستور توقف ویدیو را می دهد.

(seekTo(int milliSecاین متد مکان مشخصی از ویدیو را بر حسب میلی ثانیه بر می گرداند

()pause این متد اجرای ویدیو را در یک مشخص متوقف می کند.

()resume این متد اجرای ویدیو را در همان نکته ای که متوقف شده است را از سر می گیرد.

()isPlaying این متد نشان می دهد که آیا ویدیو در حالت اجراست یا نه

()canPause  این متد نشان می دهد که آیا ویدیو می تواند در نقطه مشخصی متوقف شود یا خیر.

() canSeekForward این متد نشان می دهد که آیا ویدیو می تواند به جلو

()canSeekBackward  این متد نشان می دهد که آیا ویدیو می تواند به عقب برگردانده شود یا خیر.

()setOnCompletedListener   این متد شنونده ای است که به هنگام پایان ویدیو اجرا می شود.

()setMediaController : مورد استفاده برای افزودن MediaControls در ویدئو. مکث / پخش، جستجو

() getDuration  متدی است که متد زمان اجرای یک ویدیو را برمی گرداند

()setOnPreparestListener : زمانی که ویدیو شروع می شود، شروع به دانلود می کند.

در بخش زیر، ما یک برنامه کاربردی برای دوستان ارائه خواهیم کرد که فیلم ها را از آدرس های اینترنتی دریافت و آن را پخش می کند. در این مثال همچنین یاد خواهیم گرفت که چگونه می توانMediaController  را در VideoView  نمایش داد.

اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را  ایجاد کنید

اکلیپس :File ⇒ New Android ⇒ Application Project

اندروید استودیو :File ⇒ New  ⇒ New Project

اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk  و نوع اکتیویتی (blank  یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود  را همان MainActivity قرار دهید.

در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml  زیر را به آن اضافه کنید:

<VideoView
    android:id="@+id/videoview1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

سپس به سراغ کلاس مرتبط با فایل xml فوق یعنی MainActivity  رفته و  کدهای مندرج در  زیر را در آن قرار می دهیم.

import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.VideoView;
import android.widget.MediaController;
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        VideoView myvideoView = (VideoView) findViewById(R.id.videoview1);
        
        MediaController mediaController = new MediaController(this);
        myvideoView.setMediaController(mediaController);
        
        Uri uri = Uri.parse("https://hw14.cdn.asset.aparat.com/aparat-video/1f9aaae3434e714eda2d6837b6a9044011695092-144p__54159.mp4");
        myvideoView.setVideoURI(uri);
        myvideoView.start();
    }
}

حال می توانید برنامه خود را اجرا کرده و نتیجه کار خود را ببینید.

موفق و پیروز باشید.


1 دیدگاه

میثم · سپتامبر 5, 2019 در 2:06 ق.ظ

سلام.با تشکر از سایت خوبتون
من با این روش ویدئو رو از طریق اینترنت در برنامه تعریف کردم و کار کرد اما بعد از چند روز پیغام “پوزش می طلبیم، پخش این ویدیو امکان پذیر نیست” داده میشه علت چیه؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

-- بارگیری کد امنیتی --