بسم الله الرحمن الرحیم.
با سلام خدمت شما دوستان عزیز.
امروز تصمیم دارم که آموزش پخش ویدیو از یک ادرس اینترنتی توی برنامه نویسی اندروید رو خدمتتون آموزش بدم.
نام اپلیکیشن : VideoStreamTutorial
نام پروژه: VideoStreamTutorial
نام پکیج : com.androidbegin.videostreamtutorial
فایل MainActivity.java رو باز کنید و کد های زیر رو توی اون کپی کنید.
MainActivity.java
package com.androidbegin.videostreamtutorial;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the layout from video_main.xml
setContentView(R.layout.activity_main);
// Locate the button in activity_main.xml
button = (Button) findViewById(R.id.MyButton);
// Capture button clicks
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// Start NewActivity.class
Intent myIntent = new Intent(MainActivity.this,
VideoViewActivity.class);
startActivity(myIntent);
}
});
}
}
ما توی این اکتیویتی یه گزینه میزاریم که اگه روش کلیک کنیم بریم توی یه صفحه دیگه.
کد های زیر رو توی فایل activity_main.xml کپی کنید
activity_main.xml
حالا برای اینکه صفحه ای رو ایجاد کنیم که ویدیو توش نمایش داده بشه یه کلاس به نام VideoViewActivity.java بسازید.
کد های زیر رو توی کلاس جدید کپی کنید.
package com.androidbegin.videostreamtutorial;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.util.Log;
import android.widget.MediaController;
import android.widget.VideoView;
public class VideoViewActivity extends Activity {
// Declare variables
ProgressDialog pDialog;
VideoView videoview;
// Insert your Video URL
String VideoURL = "http://www.androidbegin.com/tutorial/AndroidCommercial.3gp";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the layout from video_main.xml
setContentView(R.layout.videoview_main);
// Find your VideoView in your video_main.xml layout
videoview = (VideoView) findViewById(R.id.VideoView);
// Execute StreamVideo AsyncTask
// Create a progressbar
pDialog = new ProgressDialog(VideoViewActivity.this);
// Set progressbar title
pDialog.setTitle("Android Video Streaming Tutorial");
// Set progressbar message
pDialog.setMessage("Buffering...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
// Show progressbar
pDialog.show();
try {
// Start the MediaController
MediaController mediacontroller = new MediaController(
VideoViewActivity.this);
mediacontroller.setAnchorView(videoview);
// Get the URL from String VideoURL
Uri video = Uri.parse(VideoURL);
videoview.setMediaController(mediacontroller);
videoview.setVideoURI(video);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
videoview.requestFocus();
videoview.setOnPreparedListener(new OnPreparedListener() {
// Close the progress bar and play the video
public void onPrepared(MediaPlayer mp) {
pDialog.dismiss();
videoview.start();
}
});
}
}
ما توی این اکتیویتی یک پروگرس بار قرار میدیم تا زمانی که داره ویدیو لود میشه کاربر بفهمه که باید منتظر بمونه بعد ویدیو رو توی یه VideoView لود میکنیم. ما به ویدیو ویو قابلیت MediaController رو میدیم تا کاربر قابلیت Play/Pause رو داشته باشه و یه پروگرس (سیک بار) که کاربر بتونه فیلم رو کنترل کنه (عقب و جلو ببره).
فایل videoview_main.xml رو توی فولدر xml ایجاد کنید.
حالا وارد فایل strings.xml که توی فولدر value هست بشید و کد هاش رو اینجوری تغییر بدید.
Video Stream Tutorial
Hello world!
Settings
Stream Video
همونجوری که میدونید باید توی اندروید وقتی از یه آدرس اینترنتی استفاده می کنید که بتونید به اینترنت دسترسی داشته باشید باید اجازه اش رو از کاربر بگیرید بخاطر همین بیاید توی فایل منیفست و اینجوری تغییرش بدید.
AndroidManifest.xml
در آخر می تونید همه این کد ها رو توی یه سورس برای اکلیپس دانلود کنید.
اگه سوالی بود بپرسید اگه بلد باشم جواب میدم
تا آموزش بعدی
یا علی مدد
mhm میگه:
سلام ممنون از اینکه پاسخ دادین.با عرض پوزش من به این سایت رفتم ترجمه هم کردم ولی به جایی نرسیدم اصلا معلوم نبود از کجا شروع کرده بود به کجا رسیده بود.تو گوگل هم زیاد سرچ کردم ولی به نتیجه نرسیدم میخواستم ببینم شما سایت فارسی زبان میشناسین در همین مورد لطف کنید معرفی کنید.خیلی ممنون
محمد فلاح به این سوال پاسخ داده که:
سلام. خواهش میکنم
این لینکی که بنده بهتون دادم یه لینک لایبراری از سایت گیتهاب بود (ِیعنی آموزش نیست، یه لایبراریه) که خیلی میتونه کمکتون کنه و شما میتونید باهاش تمام رویداد ها رو کنترل کنید یه بار دیگه یه سر بهش بزنید.
برای استفاده از این لایبراری باید اول دانلودش کنید بعد طبق متن زیرش پیش برید مثلا برای پخش یه فیلم به صورت آنلاین باید بعد از اضافه کردن لایبراری از این کد ها استفاده کنید
https://github.com/afollestad/easy-video-player#code-setup
اگه تونستم برای استفاده از همین لایبرای ان شاءالله هرچه زودتر یه پست میزارم.
موفق باشید
mhm میگه:
با سلام ممنون از آموزش مفیدتون.یک سوالی داشتم.زیر videoview_mainخط قرمز میکشه و حتی وقتی موس رو روش میزارم راه پیشنهادی هم نداره.در این خط;(setContentView(R.layout.videoview_mainتوی کلاسVideoViewActivityبعد یه چیز دیگه این آموزش شما فقط فیلمهای دارای پسوند3gpهستش برایmp4چه کار کنیم؟ممنون میشم کمکم کنید.
محمد فلاح به این سوال پاسخ داده که:
سلام دوست عزیز.
احتمالا شما این فایل xml رو توی پوشه xml پروژه تون نساختید شایدم اسمش رو اشتباه نوشته باشید یه بار چک کنید.
فکر کنم که بتونید با همین آموزش فیلم های mp4 هم نشون بدید ( من خودم تست نکردم ولی احتمالا میشه)
اگه باز دوست دارید که حرفه ای تر کار کنید و بتونید تمامی رویداد ها رو کنترل کنید و یه ظاهر خوبی هم داشته باشید میتونید از این لایبراری استفاده کنید(لایبراری قدرتمندی هست که mp4 رو هم پخش میکنه)
لینک لایبراری پیشنهادی، کلیک کنید