• Android 流媒体系列(二)


    import java.io.IOException;
    import android.app.Activity;
    import android.content.ContentResolver;
    import android.database.Cursor;
    import android.media.ExifInterface;
    import android.os.Bundle;
    import android.provider.MediaStore;
    public class MainActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //测试1
            //getVideosInfo();
            //测试2
            //getPhotosInfo();
            //测试3
            getAudiosInfo();
        }
        
        //获取设备上所有的视频信息
    	private void getVideosInfo() {
    		ContentResolver contentResolver=getContentResolver();
    		String [] videoColumns=new String[]{
    				MediaStore.Video.Media._ID,
    				MediaStore.Video.Media.DATA,
    				MediaStore.Video.Media.TITLE,
    				MediaStore.Video.Media.MIME_TYPE
    		};
    //      两种方法均可		
    //		Cursor cursor=
    //	    this.managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
    		Cursor cursor=contentResolver.query
    		(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoColumns, null, null, null);
    		while (cursor.moveToNext()) {
    			String _id=
    			cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));
    			String filePath=
    			cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
    			String title=
    			cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));
    			String mime_type=
    			cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));
    		    System.out.println("_id="+_id);
    		    System.out.println("title="+title);
    		    System.out.println("filePath="+filePath);
    		    System.out.println("mime_type="+mime_type);
    		}
    	}
    	
    	 //获取设备上所有的照片信息
    	 private void getPhotosInfo() {
    			ContentResolver contentResolver=getContentResolver();
    			String [] photoColumns=new String[]{
    					MediaStore.Images.Media._ID,
    					MediaStore.Images.Media.DATA,
    					MediaStore.Images.Media.TITLE,
    					MediaStore.Images.Media.MIME_TYPE,
    					MediaStore.Images.Media.SIZE,
    					MediaStore.Images.Media.ORIENTATION
    			};
    //	      两种方法均可		
    //			Cursor cursor=
    //		    this.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
    			Cursor cursor=contentResolver.query
    			(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, photoColumns, null, null, null);
    			while (cursor.moveToNext()) {
    				String _id=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID));
    				String filePath=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
    				String title=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.TITLE));
    				String mime_type=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.MIME_TYPE));
    				String size=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.SIZE));
    				//得到照片旋转角度方法一
    				String orientation0=cursor.getString
    				(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.ORIENTATION));
    			    System.out.println("_id="+_id);
    			    System.out.println("size="+size);
    			    System.out.println("title="+title);
    			    System.out.println("filePath="+filePath);
    			    System.out.println("mime_type="+mime_type);
    			    System.out.println("第一处 orientation0="+orientation0);
    			    try {
    					ExifInterface exifInterface=new ExifInterface(filePath);
    					String image_length=
    					exifInterface.getAttribute(ExifInterface.TAG_IMAGE_LENGTH);
    					String image_width=
    					exifInterface.getAttribute(ExifInterface.TAG_IMAGE_WIDTH);
    					String orientation1=
    					exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION);
    					String dateTime=
    					exifInterface.getAttribute(ExifInterface.TAG_DATETIME);
    					System.out.println("image_length="+image_length);
    					System.out.println("image_width="+image_width);
    					System.out.println("dateTime="+dateTime);
    					//得到照片旋转角度方法二
    					//应该结合ExifInterface源码分析.
    					//此处有待于进一步分析和验证
    					switch (Integer.valueOf(orientation1)) {
    					case 1:
    						System.out.println("第二处旋转角度="+0);
    						break;
    					case 2:
    						//matrix.invert(matrix);
    						break;
    					case 3:
    						//matrix.setRotate(180);
    						System.out.println("第二处旋转角度="+180);
    						break;
    					case 4:
    						//matrix.invert(matrix);
    						//matrix.setRotate(180);
    						System.out.println("第二处旋转角度="+180);
    						break;
    					case 5:
    						//matrix.setRotate(90);
    						//matrix.invert(matrix);
    						System.out.println("第二处旋转角度="+90);
    						break;
    					case 6:
    						//matrix.setRotate(90);
    						System.out.println("第二处旋转角度="+90);
    						break; 
    					case 7: 
    						//matrix.invert(matrix);
    						//matrix.setRotate(90);
    						System.out.println("第二处旋转角度="+90);
    						break;    
    					case 8:
    						//matrix.setRotate(270);
    						System.out.println("第二处旋转角度="+270);
    						break;
    					default: 
    						break;
    					}
    					System.out.println("XXXXXXXXXXXXXXXXXXX");
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    				
    			}
    		 
    	 }
    	 
    	 //获取设备上所有的音频信息
    	 private void getAudiosInfo() {
    			ContentResolver contentResolver=getContentResolver();
    			String [] audioColumns=new String[]{
    					MediaStore.Audio.Media._ID,
    					MediaStore.Audio.Media.DATA,
    					MediaStore.Audio.Media.TITLE,
    					MediaStore.Audio.Media.MIME_TYPE
    			};
    //	      两种方法均可		
    //			Cursor cursor=
    //		    this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, mediaColumns, null, null, null);
    			Cursor cursor=contentResolver.query
    			(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, audioColumns, null, null, null);
    			while (cursor.moveToNext()) {
    				String _id=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
    				String filePath=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
    				String title=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
    				String mime_type=
    				cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.MIME_TYPE));
    			    System.out.println("_id="+_id);
    			    System.out.println("title="+title);
    			    System.out.println("filePath="+filePath);
    			    System.out.println("mime_type="+mime_type);
    				
    			}
    		 
    	 }
       
    }

    移动开发:Android中MediaStore使用示例


    
       
    
    
  • 相关阅读:
    异步解决方案----Promise与Await
    多页应用 Webpack4 配置优化与踩坑记录
    左侧固定,右侧自适应的布局方式(新增评论区大佬教的方法)
    精读《Epitath 源码
    如何编写 Typescript 声明文件
    状态码具体解释
    LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
    kafka教程
    double x = 10 ,y = 0;y = x % 2; 这个表达式正确吗?
    mongodb mapreduce使用总结
  • 原文地址:https://www.cnblogs.com/new0801/p/6175849.html
Copyright © 2020-2023  润新知