获取手机本地的音频、视频

跳转页面,跳转到相对页面中

  1. package com.jj.weektwo;  
  2.   
  3. import android.content.Intent;  
  4. import android.support.v7.app.AppCompatActivity;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7.   
  8. import com.jj.weektwo.demo01.CamearImageAcivity;  
  9. import com.jj.weektwo.demo02.MediaAudioActivity;  
  10. import com.jj.weektwo.demo03.LocalVideoActivity;  
  11.   
  12. public class MainActivity extends AppCompatActivity {  
  13.   
  14.     @Override  
  15.     protected void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.activity_main);  
  18.     }  
  19.   
  20.     public void onClick(View view) {  
  21.         Intent intent=new Intent();  
  22.         switch (view.getId()){  
  23.             case R.id.btn1_camera:  
  24.                 intent.setClass(this, CamearImageAcivity.class);  
  25.                 break;  
  26.             case R.id.btn2_music:  
  27.                 intent.setClass(this, MediaAudioActivity.class);  
  28.                 break;  
  29.             case R.id.btn3_video:  
  30.                 intent.setClass(this, LocalVideoActivity.class);  
  31.                 break;  
  32.         }  
  33.         startActivity(intent);  
  34.     }  
  35. }  
package com.jj.weektwo;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import com.jj.weektwo.demo01.CamearImageAcivity;
import com.jj.weektwo.demo02.MediaAudioActivity;
import com.jj.weektwo.demo03.LocalVideoActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void onClick(View view) {
        Intent intent=new Intent();
        switch (view.getId()){
            case R.id.btn1_camera:
                intent.setClass(this, CamearImageAcivity.class);
                break;
            case R.id.btn2_music:
                intent.setClass(this, MediaAudioActivity.class);
                break;
            case R.id.btn3_video:
                intent.setClass(this, LocalVideoActivity.class);
                break;
        }
        startActivity(intent);
    }
}

   手机中的照相机
  1. package com.jj.weektwo.demo01;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.graphics.Bitmap;  
  6. import android.graphics.BitmapFactory;  
  7. import android.os.Bundle;  
  8. import android.provider.MediaStore;  
  9. import android.support.v7.app.AppCompatActivity;  
  10. import android.view.View;  
  11. import android.widget.ImageView;  
  12.   
  13. import com.jj.weektwo.R;  
  14.   
  15. import java.io.File;  
  16.   
  17. public class CamearImageAcivity extends AppCompatActivity {  
  18.    private ImageView iv;  
  19.     private String path;  
  20.     @Override  
  21.     protected void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.activity_camear_image_acivity);  
  24.         iv=(ImageView)findViewById(R.id.iv);  
  25.         path=getExternalCacheDir().getAbsolutePath()+ File.separator+"222.png";  
  26.     }  
  27.   
  28.     public void onClick(View view) {  
  29.         switch (view.getId()){  
  30.             case R.id.camera:  
  31.                 Intent intent=new Intent();  
  32.                 intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);  
  33.                 startActivityForResult(intent,200);  
  34.                 break;  
  35.         }  
  36.     }  
  37.   
  38.     @Override  
  39.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  40.         super.onActivityResult(requestCode, resultCode, data);  
  41.         //判断的是requestCode和resultCode  
  42.         if (requestCode==200&&resultCode== Activity.RESULT_OK){  
  43.             Bundle bundle=data.getExtras();  
  44.             Bitmap bm=(Bitmap)bundle.get("data");  
  45.             if (bm!=null){  
  46.                 iv.setImageBitmap(bm);  
  47.             }  
  48.         }else if (requestCode==300&&resultCode==Activity.RESULT_OK){  
  49.             BitmapFactory.Options options=new BitmapFactory.Options();  
  50.             options.inJustDecodeBounds=true;  
  51.             BitmapFactory.decodeFile(path,options);  
  52.             int outHeight=options.outHeight;  
  53.             int outWidth=options.outWidth;  
  54.             int sampleHeight=outHeight/200;  
  55.             int sampleWidth=outWidth/200;  
  56.             int size=Math.max(sampleHeight,sampleWidth);  
  57.             options.inSampleSize=size;  
  58.   
  59.             options.inPreferredConfig=Bitmap.Config.RGB_565;  
  60.             options.inJustDecodeBounds=false;  
  61.             Bitmap bitmap=BitmapFactory.decodeFile(path,options);  
  62.             iv.setImageBitmap(bitmap);  
  63.   
  64.         }  
  65.     }  
  66. }  
package com.jj.weektwo.demo01;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;

import com.jj.weektwo.R;

import java.io.File;

public class CamearImageAcivity extends AppCompatActivity {
   private ImageView iv;
    private String path;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camear_image_acivity);
        iv=(ImageView)findViewById(R.id.iv);
        path=getExternalCacheDir().getAbsolutePath()+ File.separator+"222.png";
    }

    public void onClick(View view) {
        switch (view.getId()){
            case R.id.camera:
                Intent intent=new Intent();
                intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(intent,200);
                break;
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //判断的是requestCode和resultCode
        if (requestCode==200&&resultCode== Activity.RESULT_OK){
            Bundle bundle=data.getExtras();
            Bitmap bm=(Bitmap)bundle.get("data");
            if (bm!=null){
                iv.setImageBitmap(bm);
            }
        }else if (requestCode==300&&resultCode==Activity.RESULT_OK){
            BitmapFactory.Options options=new BitmapFactory.Options();
            options.inJustDecodeBounds=true;
            BitmapFactory.decodeFile(path,options);
            int outHeight=options.outHeight;
            int outWidth=options.outWidth;
            int sampleHeight=outHeight/200;
            int sampleWidth=outWidth/200;
            int size=Math.max(sampleHeight,sampleWidth);
            options.inSampleSize=size;

            options.inPreferredConfig=Bitmap.Config.RGB_565;
            options.inJustDecodeBounds=false;
            Bitmap bitmap=BitmapFactory.decodeFile(path,options);
            iv.setImageBitmap(bitmap);

        }
    }
}
     
    照相机中的XML文件

  

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     android:id="@+id/activity_camear_image_acivity"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     android:orientation="vertical"  
  8.     tools:context="com.jj.weektwo.demo01.CamearImageAcivity">  
  9.     <Button  
  10.         android:id="@+id/camera"  
  11.         android:layout_width="match_parent"  
  12.         android:layout_height="wrap_content"  
  13.         android:text="跳转照相界面"  
  14.         android:layout_marginTop="20dp"  
  15.         android:onClick="onClick"/>  
  16.     <ImageView  
  17.         android:id="@+id/iv"  
  18.         android:layout_marginTop="20dp"  
  19.         android:layout_width="match_parent"  
  20.         android:layout_height="200dp"  
  21.         android:src="@mipmap/ic_launcher"/>  
  22. </LinearLayout>  
<?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_camear_image_acivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.jj.weektwo.demo01.CamearImageAcivity">
    <Button
        android:id="@+id/camera"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="跳转照相界面"
        android:layout_marginTop="20dp"
        android:onClick="onClick"/>
    <ImageView
        android:id="@+id/iv"
        android:layout_marginTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:src="@mipmap/ic_launcher"/>
</LinearLayout>
    获取本地音频

     1、获取本地音频的Activity

  1. package com.jj.weektwo.demo02;  
  2.   
  3. import android.content.ContentResolver;  
  4. import android.database.Cursor;  
  5. import android.icu.text.SimpleDateFormat;  
  6. import android.media.MediaPlayer;  
  7. import android.net.Uri;  
  8. import android.os.Build;  
  9. import android.os.Bundle;  
  10. import android.provider.MediaStore;  
  11. import android.support.annotation.RequiresApi;  
  12. import android.support.v7.app.AppCompatActivity;  
  13. import android.view.View;  
  14. import android.widget.AdapterView;  
  15. import android.widget.ListView;  
  16. import android.widget.TextView;  
  17.   
  18. import com.jj.weektwo.R;  
  19.   
  20. import java.io.IOException;  
  21. import java.util.ArrayList;  
  22. import java.util.Date;  
  23. import java.util.List;  
  24.   
  25. public class MediaAudioActivity extends AppCompatActivity {  
  26.    private ListView lv;  
  27.     private List<MusicInfo> mlist=new ArrayList<>();  
  28.     private MusicAdapter adapter;  
  29.     private TextView singNameTv,singerTv;  
  30.     private MediaPlayer mediaPlayer;  
  31.     @RequiresApi(api = Build.VERSION_CODES.N)  
  32.     @Override  
  33.     protected void onCreate(Bundle savedInstanceState) {  
  34.         super.onCreate(savedInstanceState);  
  35.         setContentView(R.layout.activity_media_audio);  
  36.         lv=(ListView)findViewById(R.id.music_lv);  
  37.         singerTv=(TextView)findViewById(R.id.music_song);  
  38.         singNameTv=(TextView)findViewById(R.id.music_singer);  
  39.   
  40.         adapter=new MusicAdapter(this,mlist);  
  41.         lv.setAdapter(adapter);  
  42.   
  43.         LoadLocalData();  
  44.         mediaPlayer=new MediaPlayer();  
  45.         lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {  
  46.             @Override  
  47.             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {  
  48.                 MusicInfo info=mlist.get(i);  
  49.                 singNameTv.setText(info.getSinger());  
  50.                 singerTv.setText(info.getSingNamer());  
  51.                 stopMusic();  
  52.                 mediaPlayer.reset();  
  53.                 try {  
  54.                     mediaPlayer.setDataSource(info.getPath());  
  55.                     playMusic();  
  56.                 } catch (IOException e) {  
  57.                     e.printStackTrace();  
  58.                 }  
  59.             }  
  60.   
  61.             private void playMusic() {  
  62.                 if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){  
  63.   
  64.                     try {  
  65.                         mediaPlayer.prepare();  
  66.                         mediaPlayer.start();  
  67.                     } catch (IOException e) {  
  68.                         e.printStackTrace();  
  69.                     }  
  70.                 }  
  71.             }  
  72.   
  73.             private void stopMusic() {  
  74.                 if (mediaPlayer!=null&&mediaPlayer.isPlaying()){  
  75.                     mediaPlayer.pause();  
  76.                     mediaPlayer.seekTo(0);  
  77.                     mediaPlayer.stop();  
  78.                 }  
  79.             }  
  80.         });  
  81.     }  
  82.   
  83.   
  84.     @RequiresApi(api = Build.VERSION_CODES.N)  
  85.     private void LoadLocalData() {  
  86.         ContentResolver resolver=getContentResolver();  
  87.         Uri musicUriMediaStore.Audio.Media.EXTERNAL_CONTENT_URI;  
  88.         Cursor cursor=resolver.query(musicUri,null,null,null,null);  
  89.         int id=0;  
  90.         while (cursor.moveToNext()){  
  91.             String title=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));  
  92.             String display_name=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));  
  93.             String singer=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));  
  94.             String path=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));  
  95.             long duration=cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));  
  96.             SimpleDateFormat sdf=new SimpleDateFormat("mm:ss");  
  97.             String time=sdf.format(new Date(duration));  
  98.             id++;  
  99. //            String idStr=id+" ";  
  100.             int idStr=id;  
  101.             MusicInfo info=new MusicInfo(idStr,title,singer,time,path);  
  102.             mlist.add(info);  
  103.         }  
  104.         adapter.notifyDataSetChanged();  
  105.     }  
  106.     @Override  
  107.     protected void onDestroy() {  
  108.         super.onDestroy();  
  109.         stopMusic();  
  110.     }  
  111.   
  112.     private void stopMusic() {  
  113.         if (mediaPlayer!=null&&mediaPlayer.isPlaying()){  
  114.             mediaPlayer.pause();  
  115.             mediaPlayer.seekTo(0);  
  116.             mediaPlayer.stop();  
  117.         }  
  118.     }  
  119. }  
package com.jj.weektwo.demo02;

import android.content.ContentResolver;
import android.database.Cursor;
import android.icu.text.SimpleDateFormat;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;

import com.jj.weektwo.R;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MediaAudioActivity extends AppCompatActivity {
   private ListView lv;
    private List<MusicInfo> mlist=new ArrayList<>();
    private MusicAdapter adapter;
    private TextView singNameTv,singerTv;
    private MediaPlayer mediaPlayer;
    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_media_audio);
        lv=(ListView)findViewById(R.id.music_lv);
        singerTv=(TextView)findViewById(R.id.music_song);
        singNameTv=(TextView)findViewById(R.id.music_singer);

        adapter=new MusicAdapter(this,mlist);
        lv.setAdapter(adapter);

        LoadLocalData();
        mediaPlayer=new MediaPlayer();
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                MusicInfo info=mlist.get(i);
                singNameTv.setText(info.getSinger());
                singerTv.setText(info.getSingNamer());
                stopMusic();
                mediaPlayer.reset();
                try {
                    mediaPlayer.setDataSource(info.getPath());
                    playMusic();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            private void playMusic() {
                if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){

                    try {
                        mediaPlayer.prepare();
                        mediaPlayer.start();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

            private void stopMusic() {
                if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
                    mediaPlayer.pause();
                    mediaPlayer.seekTo(0);
                    mediaPlayer.stop();
                }
            }
        });
    }


    @RequiresApi(api = Build.VERSION_CODES.N)
    private void LoadLocalData() {
        ContentResolver resolver=getContentResolver();
        Uri musicUri= MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
        Cursor cursor=resolver.query(musicUri,null,null,null,null);
        int id=0;
        while (cursor.moveToNext()){
            String title=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
            String display_name=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
            String singer=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
            String path=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
            long duration=cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
            SimpleDateFormat sdf=new SimpleDateFormat("mm:ss");
            String time=sdf.format(new Date(duration));
            id++;
//            String idStr=id+" ";
            int idStr=id;
            MusicInfo info=new MusicInfo(idStr,title,singer,time,path);
            mlist.add(info);
        }
        adapter.notifyDataSetChanged();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        stopMusic();
    }

    private void stopMusic() {
        if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
            mediaPlayer.pause();
            mediaPlayer.seekTo(0);
            mediaPlayer.stop();
        }
    }
}
     本机音乐的实体类
  1. package com.jj.weektwo.demo02;  
  2.   
  3. /**  
  4.  * Created by jj on 2018/1/6.  
  5.  */  
  6.   
  7. public class MusicInfo {  
  8.     private int id;  
  9.     private String singNamer;  
  10.     private String singer;  
  11.     private String time;  
  12.     private String path;  
  13.   
  14.     public MusicInfo() {  
  15.     }  
  16.   
  17.     public MusicInfo(int id, String singNamer, String singer, String time, String path) {  
  18.         this.id = id;  
  19.         this.singNamer = singNamer;  
  20.         this.singer = singer;  
  21.         this.time = time;  
  22.         this.path = path;  
  23.     }  
  24.   
  25.     public int getId() {  
  26.         return id;  
  27.     }  
  28.   
  29.     public void setId(int id) {  
  30.         this.id = id;  
  31.     }  
  32.   
  33.     public String getSingNamer() {  
  34.         return singNamer;  
  35.     }  
  36.   
  37.     public void setSingNamer(String singNamer) {  
  38.         this.singNamer = singNamer;  
  39.     }  
  40.   
  41.     public String getSinger() {  
  42.         return singer;  
  43.     }  
  44.   
  45.     public void setSinger(String singer) {  
  46.         this.singer = singer;  
  47.     }  
  48.   
  49.     public String getTime() {  
  50.         return time;  
  51.     }  
  52.   
  53.     public void setTime(String time) {  
  54.         this.time = time;  
  55.     }  
  56.   
  57.     public String getPath() {  
  58.         return path;  
  59.     }  
  60.   
  61.     public void setPath(String path) {  
  62.         this.path = path;  
  63.     }  
  64.   
  65.     @Override  
  66.     public String toString() {  
  67.         return "MusicInfo{" +  
  68.                 "id=" + id +  
  69.                 ", singNamer='" + singNamer + '\'' +  
  70.                 ", singer='" + singer + '\'' +  
  71.                 ", time='" + time + '\'' +  
  72.                 ", path='" + path + '\'' +  
  73.                 '}';  
  74.     }  
  75. }  
package com.jj.weektwo.demo02;

/**
 * Created by jj on 2018/1/6.
 */

public class MusicInfo {
    private int id;
    private String singNamer;
    private String singer;
    private String time;
    private String path;

    public MusicInfo() {
    }

    public MusicInfo(int id, String singNamer, String singer, String time, String path) {
        this.id = id;
        this.singNamer = singNamer;
        this.singer = singer;
        this.time = time;
        this.path = path;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getSingNamer() {
        return singNamer;
    }

    public void setSingNamer(String singNamer) {
        this.singNamer = singNamer;
    }

    public String getSinger() {
        return singer;
    }

    public void setSinger(String singer) {
        this.singer = singer;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    @Override
    public String toString() {
        return "MusicInfo{" +
                "id=" + id +
                ", singNamer='" + singNamer + '\'' +
                ", singer='" + singer + '\'' +
                ", time='" + time + '\'' +
                ", path='" + path + '\'' +
                '}';
    }
}
     获取本机音乐的适配器
  1. package com.jj.weektwo.demo02;  
  2.   
  3. import android.content.Context;  
  4. import android.view.LayoutInflater;  
  5. import android.view.View;  
  6. import android.view.ViewGroup;  
  7. import android.widget.BaseAdapter;  
  8. import android.widget.TextView;  
  9.   
  10. import com.jj.weektwo.R;  
  11.   
  12. import java.util.List;  
  13.   
  14. /**  
  15.  * Created by jj on 2018/1/6.  
  16.  */  
  17.   
  18. public class MusicAdapter extends BaseAdapter{  
  19.     private Context context;  
  20.     private List<MusicInfo> mlist;  
  21.     private LayoutInflater inflater;  
  22.     public MusicAdapter(Context context, List<MusicInfo> mlist) {  
  23.         this.context = context;  
  24.         this.mlist = mlist;  
  25.         inflater=LayoutInflater.from(context);  
  26.     }  
  27.   
  28.     @Override  
  29.     public int getCount() {  
  30.         return mlist.size();  
  31.     }  
  32.   
  33.     @Override  
  34.     public Object getItem(int i) {  
  35.         return mlist.get(i);  
  36.     }  
  37.   
  38.     @Override  
  39.     public long getItemId(int i) {  
  40.         return i;  
  41.     }  
  42.   
  43.     @Override  
  44.     public View getView(int i, View view, ViewGroup viewGroup) {  
  45.         Hello hello=null;  
  46.         if (view==null){  
  47.             hello=new Hello();  
  48.             view=inflater.inflate(R.layout.item_music,viewGroup,false);  
  49.             hello.idTv=(TextView)view.findViewById(R.id.item_num);  
  50.             hello.titileTv=(TextView)view.findViewById(R.id.item_sing);  
  51.             hello.singerTv=(TextView)view.findViewById(R.id.item_singer);  
  52.             hello.timeTv=(TextView)view.findViewById(R.id.item_time);  
  53.             view.setTag(hello);  
  54.         }else {  
  55.             hello= (Hello) view.getTag();  
  56.         }  
  57.         MusicInfo musicInfo=mlist.get(i);  
  58.         hello.idTv.setText(musicInfo.getId()+"");  
  59.         hello.titileTv.setText(musicInfo.getSingNamer());  
  60.         hello.singerTv.setText(musicInfo.getSinger());  
  61.         hello.timeTv.setText(musicInfo.getTime());  
  62.         return view;  
  63.     }  
  64.   
  65.     class Hello{  
  66.         TextView idTv,titileTv,singerTv,timeTv;  
  67.     }  
  68. }  
package com.jj.weektwo.demo02;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.jj.weektwo.R;

import java.util.List;

/**
 * Created by jj on 2018/1/6.
 */

public class MusicAdapter extends BaseAdapter{
    private Context context;
    private List<MusicInfo> mlist;
    private LayoutInflater inflater;
    public MusicAdapter(Context context, List<MusicInfo> mlist) {
        this.context = context;
        this.mlist = mlist;
        inflater=LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return mlist.size();
    }

    @Override
    public Object getItem(int i) {
        return mlist.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        Hello hello=null;
        if (view==null){
            hello=new Hello();
            view=inflater.inflate(R.layout.item_music,viewGroup,false);
            hello.idTv=(TextView)view.findViewById(R.id.item_num);
            hello.titileTv=(TextView)view.findViewById(R.id.item_sing);
            hello.singerTv=(TextView)view.findViewById(R.id.item_singer);
            hello.timeTv=(TextView)view.findViewById(R.id.item_time);
            view.setTag(hello);
        }else {
            hello= (Hello) view.getTag();
        }
        MusicInfo musicInfo=mlist.get(i);
        hello.idTv.setText(musicInfo.getId()+"");
        hello.titileTv.setText(musicInfo.getSingNamer());
        hello.singerTv.setText(musicInfo.getSinger());
        hello.timeTv.setText(musicInfo.getTime());
        return view;
    }

    class Hello{
        TextView idTv,titileTv,singerTv,timeTv;
    }
}
     本机音乐的XML文件

     

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     android:id="@+id/activity_media_audio"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     tools:context="com.jj.weektwo.demo02.MediaAudioActivity">  
  8.     <ListView  
  9.         android:id="@+id/music_lv"  
  10.         android:layout_width="match_parent"  
  11.         android:layout_height="match_parent"  
  12.         android:divider="#ddd"  
  13.         android:dividerHeight="1dp"></ListView>  
  14.     <RelativeLayout  
  15.         android:layout_width="match_parent"  
  16.         android:layout_height="80dp"  
  17.         android:background="#eee"  
  18.         android:layout_alignParentBottom="true">  
  19.         <ImageView  
  20.             android:id="@+id/music_iv"  
  21.             android:layout_width="70dp"  
  22.             android:layout_height="70dp"  
  23.             android:layout_centerVertical="true"  
  24.             android:layout_marginLeft="20dp"  
  25.             android:src="@mipmap/ic_launcher"/>  
  26.         <TextView  
  27.             android:id="@+id/music_song"  
  28.             android:layout_width="wrap_content"  
  29.             android:layout_height="wrap_content"  
  30.             android:text="歌名"  
  31.             android:singleLine="true"  
  32.             android:ellipsize="end"  
  33.             android:textSize="20sp"  
  34.             android:textStyle="bold"  
  35.             android:layout_toRightOf="@id/music_iv"  
  36.             android:layout_marginTop="10dp"  
  37.             android:layout_marginLeft="10dp"/>  
  38.         <TextView  
  39.             android:id="@+id/music_singer"  
  40.             android:layout_width="wrap_content"  
  41.             android:layout_height="wrap_content"  
  42.             android:text=""  
  43.             android:textSize="18sp"  
  44.             android:layout_below="@id/music_song"  
  45.             android:layout_toRightOf="@id/music_iv"  
  46.             android:layout_marginTop="15dp"  
  47.             android:layout_marginLeft="15dp"/>  
  48.     </RelativeLayout>  
  49. </RelativeLayout>  
<?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_media_audio"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.jj.weektwo.demo02.MediaAudioActivity">
    <ListView
        android:id="@+id/music_lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="#ddd"
        android:dividerHeight="1dp"></ListView>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:background="#eee"
        android:layout_alignParentBottom="true">
        <ImageView
            android:id="@+id/music_iv"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="20dp"
            android:src="@mipmap/ic_launcher"/>
        <TextView
            android:id="@+id/music_song"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="歌名"
            android:singleLine="true"
            android:ellipsize="end"
            android:textSize="20sp"
            android:textStyle="bold"
            android:layout_toRightOf="@id/music_iv"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="10dp"/>
        <TextView
            android:id="@+id/music_singer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="18sp"
            android:layout_below="@id/music_song"
            android:layout_toRightOf="@id/music_iv"
            android:layout_marginTop="15dp"
            android:layout_marginLeft="15dp"/>
    </RelativeLayout>
</RelativeLayout>
     listview中的子布局

     

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="match_parent"  
  4.     android:layout_height="wrap_content">  
  5.     <TextView  
  6.         android:id="@+id/item_num"  
  7.         android:layout_width="wrap_content"  
  8.         android:layout_height="wrap_content"  
  9.         android:text="01"  
  10.         android:textSize="20sp"  
  11.         android:textColor="@android:color/black"  
  12.         android:layout_marginTop="20dp"  
  13.         android:layout_marginLeft="20dp"/>  
  14.     <TextView  
  15.         android:id="@+id/item_sing"  
  16.         android:layout_width="wrap_content"  
  17.         android:layout_height="wrap_content"  
  18.         android:text="玫瑰花的葬礼"  
  19.         android:textStyle="bold"  
  20.         android:singleLine="true"  
  21.         android:ellipsize="end"  
  22.         android:layout_toRightOf="@id/item_num"  
  23.         android:layout_marginLeft="20dp"  
  24.         android:layout_marginTop="20dp"  
  25.         android:textSize="20sp"  
  26.         android:textColor="@android:color/black"/>  
  27.     <TextView  
  28.         android:id="@+id/item_singer"  
  29.         android:layout_width="wrap_content"  
  30.         android:layout_height="wrap_content"  
  31.         android:text="许嵩"  
  32.         android:layout_below="@id/item_sing"  
  33.         android:layout_marginLeft="140dp"  
  34.         android:layout_marginTop="20dp"  
  35.         android:textSize="20sp" />  
  36.     <TextView  
  37.         android:id="@+id/item_time"  
  38.         android:layout_width="wrap_content"  
  39.         android:layout_height="wrap_content"  
  40.         android:text="时间:4:44"  
  41.         android:layout_toRightOf="@id/item_singer"  
  42.         android:layout_below="@id/item_sing"  
  43.         android:layout_marginTop="20dp"  
  44.         android:textSize="20dp"  
  45.         android:textColor="@android:color/holo_red_dark"  
  46.         android:layout_marginLeft="80dp"/>  
  47. </RelativeLayout>  
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:id="@+id/item_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="01"
        android:textSize="20sp"
        android:textColor="@android:color/black"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"/>
    <TextView
        android:id="@+id/item_sing"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="玫瑰花的葬礼"
        android:textStyle="bold"
        android:singleLine="true"
        android:ellipsize="end"
        android:layout_toRightOf="@id/item_num"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:textSize="20sp"
        android:textColor="@android:color/black"/>
    <TextView
        android:id="@+id/item_singer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="许嵩"
        android:layout_below="@id/item_sing"
        android:layout_marginLeft="140dp"
        android:layout_marginTop="20dp"
        android:textSize="20sp" />
    <TextView
        android:id="@+id/item_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="时间:4:44"
        android:layout_toRightOf="@id/item_singer"
        android:layout_below="@id/item_sing"
        android:layout_marginTop="20dp"
        android:textSize="20dp"
        android:textColor="@android:color/holo_red_dark"
        android:layout_marginLeft="80dp"/>
</RelativeLayout>
    获取本地文件中的视频(里面用的是节操)

    获取视频的Activity

  1. package com.jj.weektwo.demo03;  
  2.   
  3. import android.content.ContentResolver;  
  4. import android.database.Cursor;  
  5. import android.media.MediaPlayer;  
  6. import android.net.Uri;  
  7. import android.os.Bundle;  
  8. import android.provider.MediaStore;  
  9. import android.support.v7.app.AppCompatActivity;  
  10. import android.view.View;  
  11. import android.widget.AdapterView;  
  12. import android.widget.ListView;  
  13.   
  14. import com.jj.weektwo.R;  
  15.   
  16. import java.io.IOException;  
  17. import java.util.ArrayList;  
  18. import java.util.List;  
  19.   
  20. public class LocalVideoActivity extends AppCompatActivity {  
  21.     private ListView lv;  
  22.     private List<LocalVideoBean> mlist=new ArrayList<>();  
  23.     private LocalVideoAdapter adapter;  
  24.     private MediaPlayer mediaPlayer;  
  25.     @Override  
  26.     protected void onCreate(Bundle savedInstanceState) {  
  27.         super.onCreate(savedInstanceState);  
  28.         setContentView(R.layout.activity_local_video);  
  29.         lv=(ListView)findViewById(R.id.video_lv);  
  30.   
  31.         adapter=new LocalVideoAdapter(mlist,this);  
  32.         lv.setAdapter(adapter);  
  33.            
  34.         LoadLocalData();  
  35.         mediaPlayer=new MediaPlayer();  
  36.         lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {  
  37.             @Override  
  38.             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {  
  39.                 LocalVideoBean bean=mlist.get(i);  
  40.                 stopMusic();  
  41.                 mediaPlayer.reset();  
  42.                 try {  
  43.                     mediaPlayer.setDataSource(bean.getPath());  
  44.                     playMusic();  
  45.                 } catch (IOException e) {  
  46.                     e.printStackTrace();  
  47.                 }  
  48.             }  
  49.   
  50.             private void playMusic() {  
  51.                 if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){  
  52.                     try {  
  53.                         mediaPlayer.prepare();  
  54.                         mediaPlayer.start();  
  55.                     } catch (IOException e) {  
  56.                         e.printStackTrace();  
  57.                     }  
  58.                 }  
  59.             }  
  60.   
  61.             private void stopMusic() {  
  62.                 if (mediaPlayer!=null&&mediaPlayer.isPlaying()){  
  63.                     mediaPlayer.pause();  
  64.                     mediaPlayer.seekTo(0);  
  65.                     mediaPlayer.stop();  
  66.                 }  
  67.             }  
  68.         });  
  69.     }  
  70.   
  71.     private void LoadLocalData() {  
  72.         ContentResolver resolver=getContentResolver();  
  73.         Uri uriMediaStore.Video.Media.EXTERNAL_CONTENT_URI;  
  74.         Cursor cursor=resolver.query(uri,null,null,null,MediaStore.Video.Media.DEFAULT_SORT_ORDER);  
  75.         while (cursor.moveToNext()){  
  76.             String title=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DISPLAY_NAME));  
  77.             String path=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));  
  78.   
  79.            LocalVideoBean bean=new LocalVideoBean(path,title);  
  80.             mlist.add(bean);  
  81.         }  
  82.         adapter.notifyDataSetChanged();  
  83.   
  84.     }  
  85.   
  86.     @Override  
  87.     protected void onDestroy() {  
  88.         super.onDestroy();  
  89.         stopMusic();  
  90.     }  
  91.   
  92.     private void stopMusic() {  
  93.         if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){  
  94.             mediaPlayer.pause();  
  95.             mediaPlayer.seekTo(0);  
  96.             mediaPlayer.stop();  
  97.         }  
  98.     }  
  99. }  
package com.jj.weektwo.demo03;

import android.content.ContentResolver;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import com.jj.weektwo.R;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class LocalVideoActivity extends AppCompatActivity {
    private ListView lv;
    private List<LocalVideoBean> mlist=new ArrayList<>();
    private LocalVideoAdapter adapter;
    private MediaPlayer mediaPlayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_local_video);
        lv=(ListView)findViewById(R.id.video_lv);

        adapter=new LocalVideoAdapter(mlist,this);
        lv.setAdapter(adapter);
         
        LoadLocalData();
        mediaPlayer=new MediaPlayer();
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                LocalVideoBean bean=mlist.get(i);
                stopMusic();
                mediaPlayer.reset();
                try {
                    mediaPlayer.setDataSource(bean.getPath());
                    playMusic();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            private void playMusic() {
                if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){
                    try {
                        mediaPlayer.prepare();
                        mediaPlayer.start();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

            private void stopMusic() {
                if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
                    mediaPlayer.pause();
                    mediaPlayer.seekTo(0);
                    mediaPlayer.stop();
                }
            }
        });
    }

    private void LoadLocalData() {
        ContentResolver resolver=getContentResolver();
        Uri uri= MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
        Cursor cursor=resolver.query(uri,null,null,null,MediaStore.Video.Media.DEFAULT_SORT_ORDER);
        while (cursor.moveToNext()){
            String title=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DISPLAY_NAME));
            String path=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));

           LocalVideoBean bean=new LocalVideoBean(path,title);
            mlist.add(bean);
        }
        adapter.notifyDataSetChanged();

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        stopMusic();
    }

    private void stopMusic() {
        if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){
            mediaPlayer.pause();
            mediaPlayer.seekTo(0);
            mediaPlayer.stop();
        }
    }
}
     获取视频的实体类

    

  1. package com.jj.weektwo.demo03;  
  2.   
  3. /**  
  4.  * Created by jj on 2018/1/6.  
  5.  */  
  6.   
  7. public class LocalVideoBean {  
  8.     private String path;  
  9.     private String title;  
  10.   
  11.     public LocalVideoBean() {  
  12.     }  
  13.   
  14.     public LocalVideoBean(String path, String title) {  
  15.         this.path = path;  
  16.         this.title = title;  
  17.     }  
  18.   
  19.     public String getPath() {  
  20.         return path;  
  21.     }  
  22.   
  23.     public void setPath(String path) {  
  24.         this.path = path;  
  25.     }  
  26.   
  27.     public String getTitle() {  
  28.         return title;  
  29.     }  
  30.   
  31.     public void setTitle(String title) {  
  32.         this.title = title;  
  33.     }  
  34.   
  35.     @Override  
  36.     public String toString() {  
  37.         return "LocalVideoBean{" +  
  38.                 "path='" + path + '\'' +  
  39.                 ", title='" + title + '\'' +  
  40.                 '}';  
  41.     }  
  42. }  
package com.jj.weektwo.demo03;

/**
 * Created by jj on 2018/1/6.
 */

public class LocalVideoBean {
    private String path;
    private String title;

    public LocalVideoBean() {
    }

    public LocalVideoBean(String path, String title) {
        this.path = path;
        this.title = title;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    @Override
    public String toString() {
        return "LocalVideoBean{" +
                "path='" + path + '\'' +
                ", title='" + title + '\'' +
                '}';
    }
}
   适配器
  1. package com.jj.weektwo.demo03;  
  2.   
  3. import android.content.Context;  
  4. import android.view.LayoutInflater;  
  5. import android.view.View;  
  6. import android.view.ViewGroup;  
  7. import android.widget.BaseAdapter;  
  8.   
  9. import com.jj.weektwo.R;  
  10.   
  11. import java.util.List;  
  12.   
  13. import cn.jzvd.JZVideoPlayer;  
  14. import cn.jzvd.JZVideoPlayerStandard;  
  15.   
  16. /**  
  17.  * Created by jj on 2018/1/6.  
  18.  */  
  19.   
  20. public class LocalVideoAdapter extends BaseAdapter {  
  21.     private List<LocalVideoBean> mlist;  
  22.     private Context context;  
  23.    private LayoutInflater inflater;  
  24.     public LocalVideoAdapter(List<LocalVideoBean> mlist, Context context) {  
  25.         this.mlist = mlist;  
  26.         this.context = context;  
  27.         inflater=LayoutInflater.from(context);  
  28.     }  
  29.   
  30.     @Override  
  31.     public int getCount() {  
  32.         return mlist.size();  
  33.     }  
  34.   
  35.     @Override  
  36.     public Object getItem(int i) {  
  37.         return mlist.get(i);  
  38.     }  
  39.   
  40.     @Override  
  41.     public long getItemId(int i) {  
  42.         return i;  
  43.     }  
  44.   
  45.     @Override  
  46.     public View getView(int i, View view, ViewGroup viewGroup) {  
  47.         Hello hello=null;  
  48.         if (view==null){  
  49.             hello=new Hello();  
  50.             view=inflater.inflate(R.layout.item_video,viewGroup,false);  
  51.             hello.playerStandard=(JZVideoPlayerStandard)view.findViewById(R.id.video_JZ);  
  52.             view.setTag(hello);  
  53.         }else {  
  54.             hello=(Hello)view.getTag();  
  55.         }  
  56.         LocalVideoBean bean=mlist.get(i);  
  57.         hello.playerStandard.setUp(bean.getPath(), JZVideoPlayer.SCREEN_WINDOW_LIST,bean.getTitle());  
  58.         return view;  
  59.     }  
  60.   
  61.     class Hello{  
  62.         JZVideoPlayerStandard playerStandard;  
  63.     }  
  64. }  
package com.jj.weektwo.demo03;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

import com.jj.weektwo.R;

import java.util.List;

import cn.jzvd.JZVideoPlayer;
import cn.jzvd.JZVideoPlayerStandard;

/**
 * Created by jj on 2018/1/6.
 */

public class LocalVideoAdapter extends BaseAdapter {
    private List<LocalVideoBean> mlist;
    private Context context;
   private LayoutInflater inflater;
    public LocalVideoAdapter(List<LocalVideoBean> mlist, Context context) {
        this.mlist = mlist;
        this.context = context;
        inflater=LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return mlist.size();
    }

    @Override
    public Object getItem(int i) {
        return mlist.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        Hello hello=null;
        if (view==null){
            hello=new Hello();
            view=inflater.inflate(R.layout.item_video,viewGroup,false);
            hello.playerStandard=(JZVideoPlayerStandard)view.findViewById(R.id.video_JZ);
            view.setTag(hello);
        }else {
            hello=(Hello)view.getTag();
        }
        LocalVideoBean bean=mlist.get(i);
        hello.playerStandard.setUp(bean.getPath(), JZVideoPlayer.SCREEN_WINDOW_LIST,bean.getTitle());
        return view;
    }

    class Hello{
        JZVideoPlayerStandard playerStandard;
    }
}
     XML文件
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     android:id="@+id/activity_local_video"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     android:paddingBottom="@dimen/activity_vertical_margin"  
  8.     android:paddingLeft="@dimen/activity_horizontal_margin"  
  9.     android:paddingRight="@dimen/activity_horizontal_margin"  
  10.     android:paddingTop="@dimen/activity_vertical_margin"  
  11.     tools:context="com.jj.weektwo.demo03.LocalVideoActivity">  
  12.     <ListView  
  13.         android:id="@+id/video_lv"  
  14.         android:layout_width="match_parent"  
  15.         android:layout_height="match_parent"></ListView>  
  16. </RelativeLayout>  
<?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_local_video"
    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="com.jj.weektwo.demo03.LocalVideoActivity">
    <ListView
        android:id="@+id/video_lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>
</RelativeLayout>
    子布局

    

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="match_parent"  
  4.     android:layout_height="match_parent">  
  5.   
  6.    <cn.jzvd.JZVideoPlayerStandard  
  7.        android:id="@+id/video_JZ"  
  8.        android:layout_width="match_parent"  
  9.        android:layout_height="220dp"></cn.jzvd.JZVideoPlayerStandard>  
  10. </RelativeLayout>  
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

   <cn.jzvd.JZVideoPlayerStandard
       android:id="@+id/video_JZ"
       android:layout_width="match_parent"
       android:layout_height="220dp"></cn.jzvd.JZVideoPlayerStandard>
</RelativeLayout>

      权限 读写权限

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.jj.weektwo">  
  4.   
  5.     <uses-permission android:name="android.permission.INTERNET" />  
  6.     <uses-permission android:name="android.permission.CAMERA" />  
  7.     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />  
  8.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  9.   
  10.     <application  
  11.         android:allowBackup="true"  
  12.         android:icon="@mipmap/ic_launcher"  
  13.         android:label="@string/app_name"  
  14.         android:supportsRtl="true"  
  15.         android:theme="@style/AppTheme">  
  16.         <activity android:name=".MainActivity">  
  17.             <intent-filter>  
  18.                 <action android:name="android.intent.action.MAIN" />  
  19.   
  20.                 <category android:name="android.intent.category.LAUNCHER" />  
  21.             </intent-filter>  
  22.         </activity>  
  23.         <activity android:name=".demo01.CamearImageAcivity" />  
  24.         <activity android:name=".demo02.MediaAudioActivity" />  
  25.         <activity android:name=".demo03.LocalVideoActivity" />  
  26.     </application>  
  27.   
  28. </manifest>  
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jj.weektwo">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".demo01.CamearImageAcivity" />
        <activity android:name=".demo02.MediaAudioActivity" />
        <activity android:name=".demo03.LocalVideoActivity" />
    </application>

</manifest>
     改一下版本号 改为16  22  里面也有饺子的依赖

     

  1. apply plugin: 'com.android.application'  
  2.   
  3. android {  
  4.     compileSdkVersion 26  
  5.     buildToolsVersion "26.0.2"  
  6.   
  7.     defaultConfig {  
  8.         applicationId "com.jj.weektwo"  
  9.         minSdkVersion 16  
  10.         targetSdkVersion 22  
  11.         versionCode 1  
  12.         versionName "1.0"  
  13.   
  14.         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"  
  15.   
  16.     }  
  17.     buildTypes {  
  18.         release {  
  19.             minifyEnabled false  
  20.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  21.         }  
  22.     }  
  23. }  
  24.   
  25. dependencies {  
  26.     compile fileTree(dir: 'libs', include: ['*.jar'])  
  27.     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {  
  28.         exclude group: 'com.android.support', module: 'support-annotations'  
  29.     })  
  30.     compile 'com.android.support:appcompat-v7:26.0.0-alpha1'  
  31.     testCompile 'junit:junit:4.12'  
  32.     compile 'cn.jzvd:jiaozivideoplayer:6.2.3'  
  33.   


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值