بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

پخش استریم آنلاین در آندروید (آموزش)

مدیریت گفتگو
محسن علیزاده 11 سال پیش
آخرین تغییر: 10 سال پیش

ابتدا پلاگین vitamio رو از سایت گیت هاب دانلود کنید و کتابخانه اون رو به صورت صحیح وارد برنامه تون کنید:

کد زیر رو در اکتیویتی که می خواهید استریم آنلاین پخش کنید بگنجانید:

 package com.example.name;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import io.vov.vitamio.LibsChecker;
import io.vov.vitamio.MediaPlayer;
import io.vov.vitamio.MediaPlayer.OnBufferingUpdateListener;
import io.vov.vitamio.MediaPlayer.OnInfoListener;
import io.vov.vitamio.widget.VideoView;


public class VideoStream extends Activity implements OnInfoListener, OnBufferingUpdateListener {
private static final String TAG = "VideoStream";
private String path;

private VideoView mVideoView;
private ProgressBar pb;
private TextView downloadRateView, loadRateView;
private Uri uri;



@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
if (!LibsChecker.checkVitamioLibs(this))
return;
setContentView(R.layout.video_stream);

//استریم آنلاین حرم امام رضا
path = "rtmp://185.23.131.187/live/flv:rozeh2";

mVideoView = (VideoView) findViewById(R.id.buffer);
pb = (ProgressBar) findViewById(R.id.probar);

downloadRateView = (TextView) findViewById(R.id.download_rate);
loadRateView = (TextView) findViewById(R.id.load_rate);
uri = Uri.parse(path);
mVideoView.setVideoURI(uri);
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();
mVideoView.setOnInfoListener(this);
mVideoView.setOnBufferingUpdateListener(this);
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
// optional need Vitamio 4.0
mediaPlayer.setPlaybackSpeed(1.0f);
}
});
}
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
switch (what) {
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
if (mVideoView.isPlaying()) {
mVideoView.pause();
pb.setVisibility(View.VISIBLE);
downloadRateView.setText("");
loadRateView.setText("");
downloadRateView.setVisibility(View.VISIBLE);
loadRateView.setVisibility(View.VISIBLE);

}
break;
case MediaPlayer.MEDIA_INFO_BUFFERING_END:
mVideoView.start();
pb.setVisibility(View.GONE);
downloadRateView.setVisibility(View.GONE);
loadRateView.setVisibility(View.GONE);
break;
case MediaPlayer.MEDIA_INFO_DOWNLOAD_RATE_CHANGED:
downloadRateView.setText("" + extra + "kb/s" + " ");
break;
}
return true;
}

@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
loadRateView.setText(percent + "%");
}
}

بعد در شاخه layout فایل xml ی با نام video_stream.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>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal" >

<ProgressBar
android:id="@+id/probar"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/download_rate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />

<TextView
android:id="@+id/load_rate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />
</LinearLayout>

</RelativeLayout>

در آخر فایل مانیفیست برنامه را باز کنید و اکتیویتی زیر را بدون هیچ تغییری بعد از تگ application بگذارید. به این ترتیب:

 <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<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" />
.
.
.

اگر برنامه ای با این پلاگین ساختید اینجا معرفی کنید.
موفق باشید.

نظرات

mtn67 11 سال پیش
من قبلا از این کتابخونه استفاده کرده بودم ولی مشکل داشت.صدا به درستی پخش میشد ولی تصویر به صورت اسلوموشن بود نمیدونم چرا.اگر نحوه اضافه کردن کتابخونه از گیت هاب رو هم آموزش بدی خیلی خوب میشه.
محسن علیزاده 11 سال پیش
من همچین مشکلی نداشتم، از گیت هاب دانلود کنید، بذارید کنار پوشه پروژتون، کتابخونه رو می تونید مثل یک برنامه از پیش ساخته شده وارد ایکلیپس کنید...
HRF 11 سال پیش
هر کاری کردم نتونستم vitamio رو ایمپورت کنم ... کلی ارور میده ... لطفا آموزش ایمپورت کردن کتابخانه از سایت github رو میزارید ...
HRF 11 سال پیش
(io.vov.vitamio.activity.InitActivity$UIHandler.handleMessage(InitActivity.java:81 - بعد از اجرای برنامه با این ارور مواجه میشم . کد مورد نظر که خطا گرفته : ("i.setClassName(src.getStringExtra("package"), src.getStringExtra("className
cormen2 11 سال پیش
سلام. ممنون از پست خوبتون. برنامه رو اجرا کردم. ولی پیغام "sorry can not play this video" رو میده . البته اینم بگم که خط زیر رو از manifest حذف کرد. چون خطا میگرفت. android:c
محسن علیزاده 11 سال پیش
این خطا مربوط به آدرس استریم می باشد. یک آدرس دیگرو چک کنید...
cormen2 11 سال پیش
دومین لایبرری که شما ایمپورت کردین چیه؟ (android-uitableview)
M.Karimi 11 سال پیش
سلام .ممنون بابت پست خوبتون. اگه میشه بگید روش صحیح ایمپورت کردن چطوریه
محسن علیزاده 11 سال پیش
هیچ تفاوتی با ایمپورت کردن یک پروژه از پیش ساخته و سایر کتابخانه ها ندارد...
M.Karimi 11 سال پیش
من از همون سایت گیت هاپ که گفتید دانلودش کردم ولی وقتی ایمپورت میخوام بکنم .میگه نمیشه . اینم لینکشhttp://www.pro.uploadpa.com/?file=1435609755174560_2015-06-27_21-03-33.jpg
cormen2 11 سال پیش
برا ایمپورت کردن . یک پروژه new کنید . ولی from existing source رو انتخاب کنید و آدرس لایبرری رو بهش بدید.
ba2ever 11 سال پیش
من هر کاری میکنم این پلاگین دانلود نمیشه .. اگه کسی این پلاگین رو داره ی جا آپ کنه تا دانلود کنم .. مرسی ♥
محسن علیزاده 11 سال پیش
امکان دریافت سورس کامل و جزئیات این برنامه در این لینک قابل مشاهده می باشد: answers.uncox.com/android/question/10811

پاسخ‌ها 1

sahand77 10 سال پیش

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

نظرات


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