EN

Search
Close this search box.

موستانگ، وحشیِ دوست داشتنی

پاسخ داده شد
0
0

می خواهیم با استفاده از کلاس MediaPlayer ، ویدئوهای اینترنتی را در اپلیکیشنمان نمایش دهیم.

استفاده از MediaPlayer برای دانلود ویدئو در اندروید - موستانگ

  • شما باید برای ارسال دیدگاه شوید
پاسخ عالی
0
0

<<برای انجام همین کار با استفاده از کلاس VideoView، به این پست مراجعه کنید>>

یکی از روش های جایگزین برای نمایش زنده ویدئو ها از اینترنت، استفاده از کلاس MediaPlayer است.

مرحله اول

می توانید فایل های رسانه ای، از جمله ویدئو را، از طریق SufraceView نمایش دهید. بطور مثال، می توانید از layout زیر استفاده کنید.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <SurfaceView
        android:id="@+id/surfView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
 
</RelativeLayout>

داخل اکتیویتی، از SurfaceView استفاده خواهیم کرد.

مرحله دوم

به کلاس اکتیویتی خود، این اینترفیس ها را اضافه کنید.

public class MainActivity extends Activity implements SurfaceHolder.Callback, OnPreparedListener

حالا اندروید استودیو (یا هر ide که از آن استفاده می کنید) اخطار می دهد که باید توابع زیر را پیاده سازی کنید:

@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
    // TODO Auto-generated method stub
}
 
@Override
public void surfaceCreated(SurfaceHolder arg0) {
//setup
}
 
@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
    // TODO Auto-generated method stub
}
 
@Override
public void onPrepared(MediaPlayer mp) {
//start playback
}

ما کدهایی به توابع surfaceCreated و onPrepared اضافه می کنیم.

مرحله سوم

حالا متغیرهای زیر را به کلاس اکتیویتی اضافه کنید:

private MediaPlayer mediaPlayer;
private SurfaceHolder vidHolder;
private SurfaceView vidSurface;
String vidAddress = "https://archive.org/download/ksnn_compilation_master_the_internet/ksnn_compilation_master_the_internet_512kb.mp4";

در تابع onCreate اکتیویتی، از SurfaceView استفاده می کنیم و متغیرهای بالا را مقداردهی می کنیم.

vidSurface = (SurfaceView) findViewById(R.id.surfView);
vidHolder = vidSurface.getHolder();
vidHolder.addCallback(this);
مرحله چهارم

در تابع surfaceCreated ، منابع مورد نیاز را تنظیم می کنیم (آدرس ویدئو و غیره):

try {
    mediaPlayer = new MediaPlayer();
    mediaPlayer.setDisplay(vidHolder);
    mediaPlayer.setDataSource(vidAddress);
    mediaPlayer.prepare();
    mediaPlayer.setOnPreparedListener(this);
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
} 
catch(Exception e){
    e.printStackTrace();
}

در نهایت، در تابع onPrepared ، ویدئو را پلی می کنیم:

mediaPlayer.start();

  • شما باید برای ارسال دیدگاه شوید
نمایش 1 نتیجه
پاسخ شما
اگر قبلاً حساب کاربری دارید با پر کردن فیلد های زیر یا به عنوان مهمان ارسال کنید.
نام*
ایمیل*
وب سایت