پخش ویدیو در اندروید با Exo Player

Exo Player یک از کتابخانه هایی است تحت توسعه گوگل برای استریم و پلی کردن ویدیو و صدا استفاده می شود. این کتابخانه در مراسم Google i/o 2017 معرفی شد و مورد استقبال برنامه نویسان اندروید قرار گرفت و خیلی زود توانست جایگزین Media Player و VideoView شود.
قابلیت های Exo Player :
- Create Player : با ایجاد یک نمونه از SimpleExoPlayer میتوان انواع رسانه را play کرد
- Activity lifecyle دارا بودن چرخه حیات
- Monitor Events : قابلیت رجیستر کردن رویداد ها
- UI Component : این پلیر دارای ظاهر گرافیکی قدرتمند و قابل سفارشی سازی میباشد
- قابلیت پشتیبانی از فرمت های ویدیویی و کدک ها
- قابلیت پشتیبانی از HLS
- همچنین خود گوگل در پروژه ی یوتیوب از Exo Player استفاده میکند .
نیازمندی های پیاده سازی Exo Player :
- نسخه اندروید استودیو بالاتر از 3.5 باشد
- نسخه اندروید بالاتر از ۴.۱ باشد
- آشنایی با مفاهیم کلی برنامه نویسی اندروید
نحوه ی استفاده از Exo Player
مرحله اول ) ابتدا Dependency های لازمه را در فایل build.gradle(app) قرار داده و پروژه خود را Sync کنید
Implementation 'com.google.android.exoplayer:exoplayer-core:2.7.3' Implementation 'com.google.android.exoplayer:exoplayer-dash:2.7.3' Implementation 'com.google.android.exoplayer:exoplayer-ui:2.7.3'
سپس در تگ android کد زیر را قرار دهید
compileOptions { targetCompatibility JavaVersion.VERSION_1_8 }
مرحله دوم ) در فایل Layout اکتیویتی(activity_main) میبایستی کدهای زیر را قرار دهید:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="0dp" > <com.google.android.exoplayer2.ui.PlayerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/video_view" android:focusable="true" /> </LinearLayout>
مرحله سوم ) در مسیر res یک پوشه raw ایجاد کنید و فایل ویدیویی خود را قرار دهید :
مرحله چهارم ) در فایل MainActivity خود کد های زیر را می نویسیم :
public class MainActivity extends AppCompatActivity { PlayerView playerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); playerView = findViewById(R.id.video_view); initializePlayer(); } private void initializePlayer() { SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(MainActivity.this , new DefaultTrackSelector() , new DefaultLoadControl()) ; String videoPath = RawResourceDataSource.buildRawResourceUri(R.raw.sample).toString(); Uri uri = RawResourceDataSource.buildRawResourceUri(R.raw.sample); ExtractorMediaSource audioSource = new ExtractorMediaSource( uri, new DefaultDataSourceFactory(this, "MyExoplayer"), new DefaultExtractorsFactory(), null, null ); player.prepare(audioSource); playerView.setPlayer(player); player.setPlayWhenReady(true); player.setPlayWhenReady(true); } }
نتیجه :
شکل نهایی برنامه ی ما به این صورت می شود ، در نهایت ما یک برنامه داریم که ویدیو و صدای دلخواه ما را پخش می کند .
5 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام میشه تماشای ویدیو رو پولی کرد؟
بعدا با اپلود ویدیو جدید در سمت سرور برای مخاطب هم بروز میشه؟
راهی برای محافظت در برابر دانلود داره؟
سلام وقت بخیر
این کار بله قابل انجام خواهد بود می توانید قبل پلی کردن ویدیو اصلی , یک ویدیو جدا (تبلیغی ) پلی کنید و بعد از اتمام آن ویدیو اصلی را نمایش دهید.
با تشکر
سلام اگه ويديو رو انلاين بخام بارگذاري كنم كد چجوري ميشه؟
سلام وقت بخیر
فقط کافیه از uri استفاده کنید و مسیر آنلاین ویدیو رو بزارید
سلام.ممنون از آموزش خوبتون. لطفا اگر میشه سورس پروژه رو هم بزارید