国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

視屏播放器,兩種不同的方法

2019-11-08 00:37:39
字體:
來源:轉載
供稿:網友
利用不同的技術實現視屏播放器

第一種結果如下:

這里寫圖片描述

實現步驟: 第一步在activity_main.xml文件中寫布局 <?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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.android_27.MainActivity" android:orientation="vertical" > <SurfaceView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/sv_sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <SeekBar android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:id="@+id/sb_PRojerss"/> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/ic_media_play" android:onClick="bf" /> </LinearLayout></RelativeLayout>

第二步:MainActivity類代碼

public class MainActivity extends AppCompatActivity { private SeekBar sb_projerss; private MediaPlayer mediaPlayer; private SurfaceView sv_sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取SeekBar的ID sb_projerss =(SeekBar)findViewById(R.id.sb_projerss); sv_sp =(SurfaceView)findViewById(R.id.sv_sp); //設置監聽 sb_projerss.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { int progress=seekBar.getProgress(); //在當前位置播放 mediaPlayer.seekTo(progress); } }); } public void bf(View view){ //獲得ImageButton final ImageButton imageButton= (ImageButton) view; if(mediaPlayer==null){ //播放內存卡中的文件 mediaPlayer=new MediaPlayer(); //設置音源 try { mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/movies/sister.mp4")); mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } //將畫面展示到SurfaceView中 mediaPlayer.setDisplay(sv_sp.getHolder()); mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); //獲取音樂總時間 int duration=mediaPlayer.getDuration(); //i sb_projerss.setMax(duration); new MyThread().start(); }else if(mediaPlayer.isPlaying()){ mediaPlayer.pause(); imageButton.setImageResource(android.R.drawable.ic_media_play); }else{ mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); } } class MyThread extends Thread{ @Override public void run() { super.run(); while(sb_projerss.getProgress()<=sb_projerss.getMax()){ //獲取音樂當前播放的位置 int position=mediaPlayer.getCurrentPosition(); //放入SeekBar中 sb_projerss.setProgress(position); } } }

在AndroidManifest.xml中寫權限

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

第二種:利用VideoView顯示和MediaController媒體控制器 結果如下圖:

這里寫圖片描述 第一步:activity_videoview.xml布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_videoview" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.android_27.VideoviewActivity"><VideoView android:layout_width="match_parent" android:layout_height="300dp" android:id="@+id/vv_vodio" /></LinearLayout>

第二步:VideoviewActivity類

public class VideoviewActivity extends AppCompatActivity { private VideoView vv_vodio; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_videoview); //獲得VideoView的ID vv_vodio =(VideoView)findViewById(R.id.vv_vodio); //設置播放視頻的來源 vv_vodio.setVideoPath("file://mnt/sdcard/movies/sister.mp4"); //實例化媒體控制器 MediaController mediaController=new MediaController(this); mediaController.setMediaPlayer(vv_vodio); vv_vodio.setMediaController(mediaController); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊宁市| 德令哈市| 隆子县| 外汇| 芦溪县| 康马县| 梁河县| 西青区| 综艺| 杭锦后旗| 交城县| 利津县| 栾川县| 闽侯县| 盖州市| 莫力| 石阡县| 诸城市| 桐柏县| 香河县| 乡城县| 象山县| 弥勒县| 富锦市| 色达县| 永清县| 嘉善县| 新余市| 巩义市| 雅江县| 东乡族自治县| 米易县| 荔波县| 莫力| 西宁市| 咸丰县| 宁波市| 台中县| 正安县| 女性| 吉安市|