آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

پخش فیلم ویدئو آنلاین و ... با لایببری Vitamio

sahand77  10 سال پیش  9 سال پیش
+11 0

سلام 

با توجه به اینکه بعضی از دوستان با ایمپورت کردن و استفاده از vitamio مخصوصا در اکلیپس مشکل داشتن برای همین تصمیم گرفتم تجربیات هرچند اندکم رو در اختیار شما قرار بدم 

شما از این لایبرری برای پخش ویدئو های آنلاین (مثل شبکه 1 یا حرم امام رضا و...) و فایل های صوتی آنلاین (مثل رادیو ها) و ویدئو و فایل های صوتی ذخیره شده در سرور می باشد و از پروتکل های http , mms , rtsp rtmp , hls و m3u8 پشتیبانی می کند و فرمت های Dix , Xvid , WMV , FLV , TS , TP , MOV , MP4 , AVI و ... را به راحتی پخش می کند .

نکته : شما برای اجرای این لایبرری به api 19 نیاز دارید البته این مورد هیچ ربطی به min sdk ندارد و شما می توانید از هر api مثلا 15 استفاده کنید .

اگر از اندروید استادیو استفاده میکنید کافیه فقط کد زیر رو به بید گردل اضافه کنید و به بخش شرررروع برید و دیگر هیچ :

compile 'me.neavo:vitamio:4.2.2'

نحوه استفاده در اکلیپس : 

ابتدا لایبرری رو دانلود کنید vitamio

بعد در اکلیپس ایمپورت کنید و سپس لایبرری رو به پروژه خودتان اضافه کنید

شررررررررررررررررروع:

سپس در اکتیوتی که می خواهد فیلم پخش شود این کد ها را اضافه کنید

ایمپورت ها :

mport io.vov.vitamio.LibsChecker;
import io.vov.vitamio.MediaPlayer;
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.KeyEvent;

در بخش onCreate 

if ( !LibsChecker.checkVitamioLibs(this))
return;
setContentView(R.layout.form_online_stream_player);

mVideoView = (VideoView) findViewById(R.id.buffer);

/*options = new HashMap<>();
options.put("rtmp_playpath", "");
options.put("rtmp_swfurl", "");
options.put("rtmp_live", "1");
options.put("rtmp_pageurl", "");*/
mVideoView.setVideoPath("rtmp://185.23.131.187/live//flv:rozeh2");
//mVideoView.setVideoURI(Uri.parse(path), options);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
mVideoView.setBufferSize(300);
mVideoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);
mVideoView.getHolder().setFormat(PixelFormat.RGBX_8888);
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.setPlaybackSpeed(1.0f);
}
});

در کد بالا  هر چه مقدار setBufferSize بیشتر باشد کیفیت پخش بیشتر شده ولی زمان شروع پخش کمی بیشتر می شود . و شاید اگر سرعت اینترنت کم باشد فیلم گاهی بایستد (مقدار 300 مقدار توصیه شد از نظر من است )

و بخش serVideoPath لینک مورد نظر ماست که این مورد لینک حرم امام رضا است . 

بعد از بسته شدن onCreate کد زیر را اضافه کنید 

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

if ((keyCode == KeyEvent.KEYCODE_BACK))
{
finish();
}
return super.onKeyDown(keyCode, event);
}

برای اینکه سوالی باقی نماند اینم کل کدی که تا حالا نوشتیم 

package sardary.sahand.app.online_tools;

import io.vov.vitamio.LibsChecker;
import io.vov.vitamio.MediaPlayer;
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.KeyEvent;


public class ActivityStream extends Activity {

//private HashMap<String, String> options;
private VideoView mVideoView;


@Override
protected void onResume() {
G.currentActivity = this;
super.onResume();
}


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if ( !LibsChecker.checkVitamioLibs(this))
return;
setContentView(R.layout.form_online_stream_player);

mVideoView = (VideoView) findViewById(R.id.buffer);

/*options = new HashMap<>();
options.put("rtmp_playpath", "");
options.put("rtmp_swfurl", "");
options.put("rtmp_live", "1");
options.put("rtmp_pageurl", "");*/
mVideoView.setVideoPath("rtmp://185.23.131.187/live//flv:rozeh2");
//mVideoView.setVideoURI(Uri.parse(path), options);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
mVideoView.setBufferSize(300);
mVideoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);
mVideoView.getHolder().setFormat(PixelFormat.RGBX_8888);
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.setPlaybackSpeed(1.0f);
}
});
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

if ((keyCode == KeyEvent.KEYCODE_BACK))
{
finish();
}
return super.onKeyDown(keyCode, event);
}
}

حالا صفحه form_online_stream_player.xml رو ایجاد کنید 

 و اون رو به این شکل کد نویسی کنید 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<io.vov.vitamio.widget.CenterLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<io.vov.vitamio.widget.VideoView
android:id="@+id/buffer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</io.vov.vitamio.widget.CenterLayout>



</RelativeLayout>

و در نهایت در manifest پرمیشن های زیر رو اضافه 

 <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

و اکتیویتی زیر رو هم اضافه کنید 

<activity
android:name="io.vov.vitamio.activity.InitActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
android:launchMode="singleTop"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="stateAlwaysHidden"/>

اینم کل کد manifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.vov.vitamio"
android:versionCode="400"
android:versionName="4.0">

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application>
<activity
android:name="io.vov.vitamio.activity.InitActivity"
android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
android:launchMode="singleTop"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="stateAlwaysHidden"/>
</application>

</manifest>

 حالا برنامه رو اجرا کنید و از برنامه زنده لذت ببرید هرچند با این روش هر لینکی که منتهی به یه فیلم یا صوت بشه رو میشه پخش کرد.

پایان!!!!!!!!! :)

 

0 0
اولا تشکر از آموزش مفید تون ، من یه سوال داشتم : با استفاده از کتابخونه ویتامینو برنامه در همه گوشی ها به درستی نمایش داده میشه ؟ من یه جا خوندم نوشته بود توی گوشی هایی که پردازنده ARM6+ دارند فایل اجرا نمیشه آیا این درسته ؟ و دوم سرعت پخش این برنامه چگونه است ؟ (10 سال پیش)
+2 0
خواهش میکنم من با این لایبرری یه تلوزیون آنلاین نوشتم که با اینترنت گوشی و adsl به زیبایی و راحتی کار میکنه و در مورد پردازنده هم من تابحال این مورد رو نداشتم به خصوص که پردازنده خودمم ARM هستش (10 سال پیش)
0 0
لایبرری ویتامیو لایسنس داره یا رایگانه؟ منظورم اینه که اگه بخوایم توی گوگل پلی ازش استفاده بکنیم رایگانه یا باید لایسنسشو بخریم؟ (10 سال پیش)
+1 0
طبق چیزی که تو صفحه اول سایت ویتامیو خوندم ویتامیو sdk اوپن سورس برای اندورید و ios و کاملا رایگانه (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
amraee  9 سال پیش
0 0

تشکر از sahand77

کد کلاس G را فراموش کردید

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .