Android自带的MediaController实现网络播放和本地播放升级版,第一帧

    技术2023-03-26  116

    废话不多说

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="400dp" tools:context=".MainActivity"> <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="wrap_content"> </VideoView> <ImageView android:scaleType="fitXY" android:id="@+id/img" android:layout_width="match_parent" android:layout_height="wrap_content"/> </RelativeLayout> package com.ywj.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.graphics.Bitmap; import android.media.MediaMetadataRetriever; import android.net.Uri; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import android.widget.MediaController; import android.widget.VideoView; import java.util.HashMap; public class MainActivity extends AppCompatActivity { private Activity mContext; private VideoView videoView; MediaController controller; private ImageView img; String uriPath = "http://ips.ifeng.com/video19.ifeng.com/video09/2014/06/16/1989823-102-086-0009.mp4"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); videoView = findViewById(R.id.videoView); img = findViewById(R.id.img); mContext = this; /** * 本地播放 */ // videoView.setVideoPath(""); /** * 网络播放 */ videoView.setVideoURI(Uri.parse(uriPath)); /** * 使用MediaController控制视频播放 */ controller = new MediaController(mContext); /** * 设置videoView与MediaController建立关联 */ videoView.setMediaController(controller); /** * 设置MediaController与videoView建立关联 */ controller.setMediaPlayer(videoView); MediaMetadataRetriever media = new MediaMetadataRetriever(); media.setDataSource(uriPath, new HashMap()); Bitmap bitmap = media.getFrameAtTime(); img.setImageBitmap(bitmap); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ //监听事件,去除第一帧图片 case MotionEvent.ACTION_DOWN: videoView.start(); img.setVisibility(View.GONE); break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: break; } return true; } }
    Processed: 0.015, SQL: 9