Android項(xiàng)目實(shí)現(xiàn)視頻播放器
本文實(shí)例為大家分享了Android項(xiàng)目實(shí)現(xiàn)視頻播放器的具體代碼,供大家參考,具體內(nèi)容如下
VideoView控件是播放視頻用的,借助它可以完成一個(gè)簡(jiǎn)易的視頻播放器。
①在activity_main.xml中編寫(xiě)相應(yīng)的控件
<?xml version='1.0' encoding='utf-8'?><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' tools:context='.MainActivity'> <ImageView android: android:layout_width='80dp' android:layout_height='80dp' android:layout_alignParentBottom='true' android:layout_centerHorizontal='true' android:layout_marginBottom='150dp' android:src='http://www.lshqa.cn/bcjs/@android:drawable/ic_media_play' /> <VideoView android: android:layout_width='match_parent' android:layout_height='match_parent' /></RelativeLayout>
②在MainActivity實(shí)現(xiàn)SeekBar.OnSeekChangeListener接口與SurfaceHolder.Callback接口,并重寫(xiě)這兩個(gè)接口中對(duì)應(yīng)的方法,在這些方法中實(shí)現(xiàn)播放視頻的。
package com.example.videoview;import android.media.MediaPlayer;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.MediaController;import android.widget.VideoView;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private VideoView videoView; private MediaController controller; ImageView iv_play; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); videoView = (VideoView) findViewById(R.id.videoview); iv_play = (ImageView) findViewById(R.id.bt_play); //拼出在資源文件夾下的視頻文件路徑String字符串 String url = 'android.resource://' + getPackageName() + '/' + R.raw.video; //字符串解析成Uri Uri uri = Uri.parse(url); //設(shè)置videoview的播放資源 videoView.setVideoURI(uri); //VideoView綁定控制器 controller = new MediaController(this); videoView.setMediaController(controller); iv_play.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_play: play(); break; } } // 播放視頻 private void play() { if (videoView != null && videoView.isPlaying()) { iv_play.setImageResource(android.R.drawable.ic_media_play); videoView.stopPlayback(); return; } videoView.start(); iv_play.setImageResource(android.R.drawable.ic_media_pause); videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { iv_play.setImageResource(android.R.drawable.ic_media_play); } }); }}
③修改清單文件,設(shè)置屬性screenOrientation為橫向。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp EL表達(dá)式詳解2. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器3. css代碼優(yōu)化的12個(gè)技巧4. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))5. .NET SkiaSharp 生成二維碼驗(yàn)證碼及指定區(qū)域截取方法實(shí)現(xiàn)6. 解析原生JS getComputedStyle7. jsp cookie+session實(shí)現(xiàn)簡(jiǎn)易自動(dòng)登錄8. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法9. xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理10. phpstudy apache開(kāi)啟ssi使用詳解
