简介 目录 评价 推荐
  • 慕移动3350899 2021-02-28
    求一份源码
    0回答·511浏览
  • 贝尔摩德Q 2020-06-22
    AndroidManifest

    打开Android Studio 开发平台,选择Android模式,在app包的manifest文件夹中的AndroidManifest文件,双击即可打开文件的编辑内容界面。

    2回答·660浏览
  • KalistaQAQ 2020-06-18
    videoView = (VideoView) findViewById(R.id.videoView);

    说错了你定义的textview然后findviewbyid的是videoview,所以转换有问题

    2回答·1087浏览
  • 悦悦不是小悦悦 2020-05-23
    那些工具什么的都没发出来 怎么找到一样的?
    2回答·729浏览
  • 皮皮来了昂 2020-03-27
    videoview播放完了,进度条又重新走了一遍为什么

    是什么浏览器,看一下是不是浏览器的问题

    1回答·924浏览
  • 华园企程王众 2020-03-27
    videoplayer支持倍速播放么

    支持,配置一下就可以了

    1回答·1358浏览
  • 新大学子艾克拜尔 2019-12-14
    无法播放此视频

    你自己电脑的IP地址加上,

    1回答·1029浏览
  • 慕蓝蓝 2019-08-15
    我试了很多中方式怎么还是显示视频无法播放啊

    超过6.0的系统要用运行时权限

    2回答·858浏览
  • 写代码的异类 2019-08-14
    请问如果是一个视频列表,那么全屏该怎么实现?
    0回答·956浏览
  • 简单的但丁 2019-07-26
    为什么我旋转不了

    这就是已经翻转了你的布局或者代码应该有问题不能铺满整个屏幕,检查一下代码



    1回答·911浏览
  • 慕丝516965 2019-06-10
    无法播放此视频

    在Application中添加

    android:usesCleartextTraffic="true"


    1回答·915浏览
  • qq_膏卢_0 2019-06-05
    完成后无法播放
    0回答·691浏览
  • 慕后端1394716 2019-05-21
    能问问大家老师说的那个安卓小机器人在哪里吗?我的android studio里没有那个图标

    http://img2.mukewang.com/5e5b57170001edc706840724.jpg

    使用Android Studio右侧的Device File Explorer也可以的

    1回答·1390浏览
  • 慕瓜6031693 2019-05-15
    老师,转化dp和px的工具类的源码有吗

    https://github.com/ThirdPrince/VideoPlayer

    1回答·845浏览
  • 牛Plus 2018-12-26
    为什么我的R.id.videoView点出来是错的

    改成VideoView

    1回答·1182浏览
  • qq_岁月永恒_0 2018-12-06
    布局文件貌似有冲突

    看一下是哪一部分的冲突,把这个解决好了就没问题了

    1回答·974浏览
  • qq_岁月永恒_0 2018-12-05
    老师,能分享一下素材文件吗?

    https://github.com/ThirdPrince/VideoPlayer

    1回答·1110浏览
  • 慕斯卡4918686 2018-11-13
    没有填充满的?

    检查一下这里

    /**
     * 当屏幕横向的时候
     */
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
        setVideoViewScale(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
        volume_img.setVisibility(View.VISIBLE);
        volume_seek.setVisibility(View.VISIBLE);
        isFullScreen = true;
        getWindow().clearFlags((WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN));
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    
    
    }


    1回答·911浏览
  • 南风4383925 2018-10-09
    大神救救我啊
    2回答·1036浏览
  • 小萝呗 2018-07-09
    源码地址是什么

    https://github.com/ThirdPrince/VideoPlayer

    1回答·1510浏览
  • 小萝呗 2018-06-06
    视频路径获取

    file:///android_assets/xxxxx(视频文件名)

    1回答·1782浏览
  • qq_情宁缺毋滥_0 2018-05-30
    希望发源码

    源码?

    1回答·1169浏览
  • 森北 2018-05-03
    本地视频和网络视频
    0回答·1277浏览
  • 慕标9780065 2018-04-22
    老师你好 请问有源码

    最后一节课的评论有


    1回答·1258浏览
  • 慕先生3019060 2018-04-07
    老师有没有联系方式?接外包吗?词典。

    我能接~

    1回答·1093浏览
  • 楠公子要上进 2018-03-31
    请问谁有Android视频播放器简单源码

    package com.example.mp4;
    import java.io.IOException;

    import com.example.mp4.R;

    import android.media.AudioManager;
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.os.Environment;
    import android.os.Handler;
    import android.os.Message;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.MediaController;
    import android.widget.SeekBar;
    import android.widget.TextView;
    import android.widget.VideoView;

    import android.app.Activity;
    import android.content.res.Configuration;
    import android.os.Bundle;
    import android.widget.Button;

    public class MainActivity extends Activity{
     private VideoView videoView;
     private LinearLayout controllerLayout;
     private ImageView play_controller_img,screen_img;
     private TextView current_text_tv,time_total_tv;
     private SeekBar play_seek,volume_seek;
     public static final int UPDATE_UI=1;
     private AudioManager mAudioManager;
     //定义音量控制
     /**
      * 定义videoview
      */
     @Override
     protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      mAudioManager=(AudioManager) getSystemService(AUDIO_SERVICE);//绑定,获取系统的音频服务
      initUI();
      setPlayerEvent();
      
      String path=Environment.getExternalStorageDirectory().getAbsolutePath()+"/1.mp4";
      /**
       * 本地视频播放
       */
      videoView.setVideoPath(path);
      videoView.start();
      UIHandler.sendEmptyMessage(UPDATE_UI);
      
      /**
       *使MediaController控制视频播放
       */
     // MediaController controller=new MediaController(this);
      /**
       * 设置ViedoView与MediaController建立关联
       */
     // videoView.setMediaController(controller);
      /**
       * 设置MedioController与VideoView建立关联
       */
     // controller.setMediaPlayer(videoView);
     }
     private void updateTextViewWithTimeFormat(TextView textview,int millisecond)
     {
      /**
       * 时间格式换化方法
       */
     
      int second=millisecond/1000;
      int hh=second/3600;
      int mm=second/3600/60;
      int ss=second%60;
      String str=null;
      if(hh!=0)
      {
       //format("")格式化字符变量
       str=String.format("%02d:%02d:%02d",hh,mm,ss);
      }
      else{
       str=String.format("%02d:%02d",mm,ss);
      }
      textview.setText(str);
     }
     private Handler UIHandler=new Handler(){
      public void handleMessage(Message msg){
       super.handleMessage(msg);
       if(msg.what==UPDATE_UI){
       //获取视频当前的播放时间
       int currentPosition=videoView.getCurrentPosition();
       //获取视频播放的总时间
       int totalduration=videoView.getDuration();
       //格式化视频播放时间
       updateTextViewWithTimeFormat(current_text_tv, currentPosition);
       updateTextViewWithTimeFormat(time_total_tv,totalduration);
       play_seek.setMax(totalduration);
       play_seek.setProgress(currentPosition);
       UIHandler.sendEmptyMessageDelayed(UPDATE_UI,500);
       //每隔0.5秒就更新UI
       }
      }
     };
     protected void onPause() {
      super.onPause();
      UIHandler.removeMessages(UPDATE_UI);
     }
     @Override
     protected void onDestroy() {
      // TODO 自动生成的方法存根
      super.onDestroy();
     }
     private void setPlayerEvent() {
      /**
       * 控制视频的播放和暂停的监听
       */
      play_controller_img.setOnClickListener(new View.OnClickListener() {
       
       @Override
       public void onClick(View v) {
        // TODO 自动生成的方法存根
        if(videoView.isPlaying()){
         play_controller_img.setImageResource(R.drawable.pause_btn_style);
         //暂停播放
         videoView.pause();
         UIHandler.removeMessages(UPDATE_UI);
         
        }
        else
        {
         play_controller_img.setImageResource(R.drawable.pause_btn_style);
         //继续播放
         videoView.start();
         UIHandler.sendEmptyMessage(UPDATE_UI);
        }
       }
      });
      play_seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){

       @Override
       public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        // TODO 自动生成的方法存根
        //根据当前进度刷新TextView的值
        updateTextViewWithTimeFormat(current_text_tv,progress);
       }

       @Override
       public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO 自动生成的方法存根
        UIHandler.removeMessages(UPDATE_UI);
       }

       @Override
       public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO 自动生成的方法存根
        int progress=seekBar.getProgress();
        //令视频播放季度遵循seekBar停止拖动的这一刻进度
        videoView.seekTo(progress);
        //让进度重新显示
        UIHandler.sendEmptyMessage(UPDATE_UI);
        //
       }
       
       
      });
      
     
     volume_seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){

      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
       // TODO 自动生成的方法存根
       //设置当前设备的音量
       mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,progress,0);
      }

      public void onStartTrackingTouch(SeekBar seekBar) {
       // TODO 自动生成的方法存根
       
      }

      public void onStopTrackingTouch(SeekBar seekBar) {
       // TODO 自动生成的方法存根
      
      }
      
      
     });
     
    }
     /**
      * 初始化UI布局
      */
     private void initUI() {
      // TODO 自动生成的方法存根
      videoView=(VideoView) findViewById(R.id.videoView);
      controllerLayout=(LinearLayout) findViewById(R.id.controllerbar_layout);
      play_controller_img=(ImageView) findViewById(R.id.pause_img);
      screen_img=(ImageView) findViewById(R.id.screen_img);
      current_text_tv=(TextView) findViewById(R.id.time_current_tv);
      time_total_tv=(TextView) findViewById(R.id.time_total_tv);
      play_seek=(SeekBar) findViewById(R.id.play_seek);
      volume_seek=(SeekBar) findViewById(R.id.volume_seek);
      /**
       * 当前设备的最大音量
       */
      
      int streamMaxVolume=mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
      /**
       * 获取设备的最大音量
       */
      int streamVolum=mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
      volume_seek.setMax(streamMaxVolume);
      volume_seek.setProgress(streamVolum);
     }
     /**
      *监听屏幕方向的改变   
      */
      
      
     
     @Override
     public void onConfigurationChanged(Configuration newConfig) {
      // TODO 自动生成的方法存根
      super.onConfigurationChanged(newConfig);
     }
     
    }

    <?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"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >

        <VideoView
         
            android:id="@+id/videoView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />
         <LinearLayout
            android:id="@+id/controllerbar_layout"
             android:orientation="vertical"
             android:layout_alignParentBottom="true"
          android:layout_width="match_parent"
             android:layout_height="50dp">
             <SeekBar
             android:id="@+id/play_seek"
             android:thumb="@null"   
             android:max="100"
             android:progress="20"
             android:progressDrawable="@drawable/seekbar_style2"
             android:indeterminate="false"
             android:layout_marginLeft="20dp"
             android:layout_marginRight="20dp" 
          android:layout_width="match_parent"
             android:layout_height="5dp" />
             <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:background="#000"
                android:gravity="center_vertical" >
                      <ImageView
              android:id="@+id/pause_img"
              android:layout_marginLeft="6dp"
              android:src="@drawable/pause_btn_style"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"/>
          <TextView
              android:id="@+id/time_current_tv"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="00:00:00"
              android:textColor="#ffffff"
              android:textSize="10sp"
              android:layout_marginTop="12dp"
              android:layout_marginLeft="32dp"/>
            <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="/"
              android:textColor="#4c4c4c"
              android:textSize="10sp"
                android:layout_marginTop="12dp"
              android:layout_marginLeft="70dp"/>
              <TextView
              android:id="@+id/time_total_tv"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="00:00:00"
              android:textColor="#4c4c4c"
              android:textSize="10sp"
                android:layout_marginTop="12dp"
              android:layout_marginLeft="75dp"/>
             
              <LinearLayout
              
                android:id="@+id/left_layout"
                android:layout_width="150dp"
                android:layout_height="50dp"
                 android:orientation="vertical"
                android:layout_alignParentRight="true">

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/volumn" />

                <SeekBar
                    android:id="@+id/volume_seek"
                    android:layout_width="100dp"
                    android:layout_height="5dp"
                    android:layout_marginLeft="40dp"
                    android:layout_marginTop="-15dp"
                    android:max="100"
                    android:progress="20"
                    android:progressDrawable="@drawable/seekbar_style"
                    android:thumb="@null" />
     <ImageView
                android:id="@+id/screen_img"
                android:src="@drawable/screen_img"
                android:layout_marginLeft="130dp"
                 android:layout_width="20dp"
                 android:layout_height="25dp"/>
             </LinearLayout>
      
             </RelativeLayout>


    </LinearLayout></RelativeLayout>
     
     


    1回答·2355浏览
  • RookieBoy666 2018-03-13
    视频播放系统自带的seekbar怎么去掉,然后挺欢自己的seekbar?

    视频后面有讲,会自定义的,类似音量和亮度

    1回答·1340浏览
  • 花生努力努力再努力 2018-03-13
    无法播放视频
    1. 你点一下模拟器,看看控制条出来了没,需要点击播放按钮才能播放

    2. 看看你视频的放置位置,是不是在sd卡的根目录

    1回答·2742浏览
  • RookieBoy666 2018-03-13
    加载本地视频 能播放

    https://www.jianshu.com/p/bb5876f34902

    1回答·1332浏览
  • 慕丝0238511 2018-02-07
    工程的demo能提供吗

    最后一节的评论有

    1回答·1047浏览
数据加载中...
开始学习 免费