博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 流媒体系列(二)
阅读量:7067 次
发布时间:2019-06-28

本文共 6063 字,大约阅读时间需要 20 分钟。

 
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);							}		 	 }   }

转载文章:
 

转载于:https://www.cnblogs.com/wuwa/p/6191585.html

你可能感兴趣的文章
[CLR via C#]1.5 本地代码生成器:NGen.exe
查看>>
Ubuntu 12.04.3 X64 使用 NFS 作为文件共享存储方式 安装 Oracle11g RAC
查看>>
2014第4周六
查看>>
内核双链队列
查看>>
Linux 下 Redis 安装详解
查看>>
ActiveMQ第三弹:在Spring中使用内置的Message Broker
查看>>
C#:struct的陷阱:无法修改“xxx”的返回值,因为它不是变量
查看>>
Android WebRTC 音视频开发总结(一)
查看>>
C# 获取 mp3文件信息
查看>>
如何转换SQL Server 2008数据库到SQL Server 2005
查看>>
cocos2dx 常见的22种特效 3D特效
查看>>
WinForm触摸屏程序功能界面长时间不操作自动关闭回到主界面 z
查看>>
[译]MVC网站教程(四):MVC4网站中集成jqGrid表格插件(系列完结)
查看>>
angular学习笔记(九)-css类和样式3
查看>>
C#开发微信门户及应用(8)-微信门户应用管理系统功能介绍
查看>>
Oracle由ID生成父ID的函数
查看>>
互斥量和条件变量的区别
查看>>
Lambda 表达式的示例
查看>>
poj 1002:487-3279(水题,提高题 / hash)
查看>>
查询/新建/修改本地用户和组
查看>>