پخش ویدیو در اندروید با Exo Player
1398-12-04
ارسال شده توسط آموزنگار
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);
}
}
نتیجه :
شکل نهایی برنامه ی ما به این صورت می شود ، در نهایت ما یک برنامه داریم که ویدیو و صدای دلخواه ما را پخش می کند .
دیدگاهتان را بنویسید