پخش ویدیو در اندروید با استفاده از 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 ق.ظ
سلام.با تشکر از سایت خوبتون
من با این روش ویدئو رو از طریق اینترنت در برنامه تعریف کردم و کار کرد اما بعد از چند روز پیغام “پوزش می طلبیم، پخش این ویدیو امکان پذیر نیست” داده میشه علت چیه؟