Android获取SD卡视频音频文件

Android Media——使用MediaPlayer播放SD卡中的音频 MediaPlayer是Android当中开发音视频应用的一个重要组件,它不仅支持本地音视频的播放,同时也能够播放网络的音视频,支持多种音视频播放格式。在onDestroy函数中stop和release mediaPlayer,在verifyStoragePermissions函数中申请权限,如果只播放SD卡目录的歌曲申请个读权限就可以了,我也把写申请了。最后在onClick中根据不同的按键调用mediaPlayer的函数进行播放、暂停(再次播放继续播放)、和停止(再次播放从头播放)。 阅读详情

Android获取SD卡视频音频文件



获取视频文件:

 ContentResolver contentResolver = mContext.getContentResolver();
        String[] projection = new String[]{MediaStore.Video.Media.TITLE};
        Cursor cursor = contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, 
                null, null, MediaStore.Video.Media.DEFAULT_SORT_ORDER);
        cursor.moveToFirst();
        int fileNum = cursor.getCount();
       
        for(int counter = 0; counter < fileNum; counter++){        
            Log.w(TAG, "----------------------file is: " + cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.TITLE)) );



            cursor.moveToNext();
        }
        cursor.close();

         若是获取路径,须要将projection批改为String[] projection = new String[]{MediaStore.Video.Media.DATA};


         获取的语句也须要批改为:cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));


获取音频文件:

Cursor cursor = mContext.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
            cursor.moveToFirst();
            int counter = cursor.getCount();
            String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
            
            Log.w(TAG, "------------before looping, title = " + title);
            for(int j = 0 ; j < counter; j++){
                Log.w(TAG, "-----------title = "
                        + cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)));
                
                        cursor.moveToNext();
                
            }
            cursor.close();


            以下内容来自收集http://blog.sina.com.cn/s/blog_5be1061c0100ctco.html


起首给大师讲android的多媒体数据库。MediaStore这个类是android体系供给的一个多媒体数据库,android中多媒体信息都可以从这里提取。这个MediaStore包含了多媒体数据库的所有信息,包含音频


,视频和图像,android把所有的多媒体数据库接口进行了封装,所有的数据库不消本身进行创建,直接调用哄骗ContentResolver去掉用那些封装好的接口就可以进行数据库的操纵了。今天我就介绍一些


这些接口的用法。


起首,要获得一个ContentResolver实例,ContentResolver可以如许获取,哄骗一个Activity或者Service的Context即可。如下所示:


ContentResolver mResolver = ctx.getContentResolver();


上方的那个ctx的就是一个context,Activity.this就是那个Context,这个Context就相当于一个高低文景象。获得这个Context后就可以调用getContentResolver接口获取ContentResolver实例了。


ContentResolver实例获得后,就可以进行各类查询,下面我就以音频数据库为例讲解增删改查的办法,视频和图像和音频很是类似。


在讲解各类查询之前,我给大师介绍下怎么看android都供给了哪些多媒体表。在adb shell中,找到/data/data/com.android.providers.media/databases/下,然后找到SD卡的数据库文件(一般是


一个.db文件),然后输入号令sqlite3加上这个数据库的名字就可以查询android的多媒体数据库了。.table号令可以列出所有多媒体数据库的表,.scheme加上表名可以查询表中的所有列名。这里可以利


用SQL语句来查看你想要的数据,记得最后必然要记住每条语句后面都加上分号。下面开端讲述怎么在这些表长进行增删改查。


查询,代码如下所示:


Cursor cursor = resolver.query(_uri, prjs, ions, Args, order);


ContentResolver的query办法接管几个参数,参数意义如下:


Uri:这个Uri代表要查询的数据库名称加上表的名称。这个Uri一般都直接从MediaStore里取得,例如我要取所有歌的信息,就必须哄骗MediaStore.Audio.Media. EXTERNAL _CONTENT_URI这个Uri。


专辑信息要哄骗MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI这个Uri来查询,其他查询也都类似。


Prjs:这个参数代表要从表中选择的列,用一个String数组来默示。


Selections:相当于SQL语句中的where子句,就是代表你的查询前提。


Args:这个参数是说你的Selections里有?这个符号是,这里可以以实际值庖代这个问号。若是Selections这个没有?的话,那么这个String数组可认为null。


Order:申明查询成果按什么来排序。


上方就是各个参数的意义,它返回的查询成果一个Cursor,这个Cursor就相当于数据库查询的中Result,用法和它差不久不多。


-------------------------------------------------------------------------------------------------------------------


增长,代码如下所以:


ContentValues values = new ContentValues();


values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER,0);


resolver.(_uri, values);


这个传递的参数只有两个,一个是Uri(同查询那个Uri),另一个是ContentValues。这个ContentValuses对应于数据库的一行数据,只要用put办法把每个列的设置好之后,直接哄骗方


法去插入就好了。


更新,代码如下:


ContentResolver resolver = ctx.getContentResolver();


Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;


ContentValues values = new ContentValues();


values.put(MediaStore.Audio.Media.DATE_MODIFIED, sid);


resolver.(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,values, where, ionArgs);


上方办法和查询还有增长里的参数都很类似,这里就不再反复论述了,大师也可直接参考google的文档,那边也写的很清楚。


删除,代码如下:


ContentResolver resolver = ctx.getContentResolver();


nbsp;   resolver.(MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,where, ionArgs);


如何将软件移动到SD卡:安卓存储优化教程 在快节奏的数字世界中,随着手机应用程序的不断增长,数据存储已成为安卓用户关注的焦点。良好的安卓设备存储管理不仅能够提高设备的运行效率,还能增强用户体验。无论是系统内存的优化,还是应用程序的扩展存储,都对设备性能和用户满意度有着直接的影响。在进行SD卡分区前,选择一款合适的磁盘管理工具至关重要。市场上的磁盘管理工具琳琅满目,对于Android设备来说,一些广受欢迎的磁盘管理软件包括:SD Maid: 专注于清理和管理设备存储空间,拥有清理缓存、管理应用、以及文件系统的优化工具。 阅读详情

相关推荐

图形学基础|屏幕空间反射(SSR)

图形学基础|屏幕空间反射(SSR) 文章目录图形学基础|屏幕空间反射(SSR)一、前言二、反射技术概述2.1 环境贴图反射2.2 IBL反射2.3 平面反射(Planar Reflections)2.4 屏幕空间反射(Screen Space Reflection)2.4.1 SSR的基本原理2.4.2 SSR的优缺点三、SSR(Screen-Space Reflection)实现3.1 Efficient GPU Screen-Space Ray Tracing3.1.1 2D Raymarching v

【黑键】 3万+

android获取sd卡视频文件,Android获取SD卡上图片和视频缩略图的小例子

Uri originalUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;//若为视频则为MediaStore.Video.Media.EXTERNAL_CONTENT_URI;ContentResolver cr = this.getContentResolver();Cursor cursor = cr.query(originalUri, ...

weixin_35816805的博客 439

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

本文详细介绍了如何使用QJsonObject重构Qt网络API数据解析层,避免常见的JSON解析陷阱。通过安全解析模式、数据绑定和性能优化技巧,帮助开发者构建高效、健壮的解析逻辑,提升代码可维护性和可读性。特别适用于处理复杂嵌套的JSON响应数据场景。

weixin_29011667的博客 230

android 通过文件名获取SD卡视频缩略图

仅仅是获取SD卡的啊,对于网络下载,就不清楚了 /** * 通过文件名 获取视频的缩略图 * * @param context * @param cr cr = getContentResolver(); * @param testVideopath 全路径 "/mnt/sdcard/sidamingbu.mp4"; * @return */ public s

zgf1991 IT新人 7701

COMSOL多物理场仿真:瓷绝缘子电热耦合建模与优化策略

本文详细介绍了使用COMSOL Multiphysics进行瓷绝缘子电热耦合仿真的完整流程与优化策略。文章阐述了电热耦合效应的工程意义,并逐步讲解了从几何建模、材料定义、物理场设置到边界条件与网格划分的关键步骤。重点分析了如何通过焦耳热耦合实现电场与温度场的双向交互,以及如何利用仿真结果进行参数化优化和瞬态故障模拟,为提升电力设备可靠性提供有效的数字化设计工具。

n8m7b6v5c4的博客 884

核磁干货 | RESTplus实战:静息态fMRI预处理全流程解析

本文详细解析了使用RESTplus工具包进行静息态fMRI数据预处理的完整流程,包括数据准备、环境配置、预处理步骤及高级分析技巧。RESTplus作为基于SPM的批处理工具,以其图形化界面和智能化参数设置显著提升了核磁静息态数据分析的效率,特别适合新手和临床研究人员。文章还分享了实战中的常见问题解决方案和性能优化技巧。

wine的专栏 884

ADB测试内存卡的读写速度

3.电脑win+r 输入 cmd 进入adb所在目录/配置环境变量后 输入adb devices即可看到手机端弹出连接授权提示,点击确认后即可执行adb命令。2. 进入手机设置--系统和更新--开发者人员选项--调试中依次打开--仅充电模式下允许ADB调试、打开usb调试。if=文件名:输入文件名,即测试文件绝对路径 < if=input file >of=文件名:输出文件名,即指定目的文件 < of=output file >1.进入手机设置--关于我们--软件版本号---连续点击7次以上。

weixin_43407833的博客 2207

液晶电视维修必看:TCON逻辑板故障排查全指南(附常见问题解决方案)

本文详细解析了液晶电视TCON逻辑板的工作原理与故障排查方法,涵盖LVDS信号处理、DC-DC电压系统等核心知识。提供从基础测量到高级维修的完整指南,帮助技术人员快速诊断黑屏、竖线等常见故障,并给出预防性维护建议,提升维修效率与成功率。

weixin_42535461的博客 616

Android系列之视频播放器(读取手机内存卡视频)

xml布局文件: <LinearLayout 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" andro

Apollo 2623

FPGA AXI DDR3读写时序调试与FIFO缓存实战解析

本文深入解析FPGA中AXI协议与DDR3的读写时序调试,重点探讨FIFO缓存在数据流控制中的关键作用。通过实战案例详细讲解突发传输中的地址对齐、数据分片等常见问题,并提供状态机设计、仿真波形分析和性能优化技巧,帮助开发者高效解决高速数据存储场景下的时序同步与数据一致性问题。

blockchain9miner的博客 1120

21天学会基于 Linux 的 NPU 固件开发--2.2 固件加载流程:request_firmware() 深度解析

本文深度解析Linux内核中NPU固件加载流程,重点剖析request_firmware()机制。内容涵盖:1)内核态与用户态的交互机制,包括同步/异步加载方式;2)NPU固件的特殊格式与加载逻辑;3)调试技巧与安全验证方案;4)提供最小化固件加载器实验。文章揭示了从文件系统到硬件初始化的完整链路,探讨了大模型时代面临的性能挑战与优化方案,如零拷贝加载技术,并提出了版本兼容性、断电恢复等关键问题的思考方向。

amy_mhd的博客 59

Android 图片、视频存储和读取

MediaStore API 简单使用

weixin_41050583的博客 3118

基于STM32L4XX、HAL库的MP2672GD-0000-Z充电芯片驱动程序设计

CHG_STAT_GPIO_Port, CHG_STAT_Pin, // 这些宏应由 CubeMX 生成在 main.h。

zhusl6688的博客 497

android 扫描手机内存和SD卡,获取手机的视频、音频文件。把获取不到的文件扫描出来

网上查了下android手机扫描内存或者SD卡里面的音频或者视频文件,进行显示。但是有些视频或者音频扫描不出来。有其中一个原因是当你添加了一个视频或者音频文件后,手机自身没有重新进行扫描。只有手机重启之后,手机自身才会进行扫描,才能使用传统的扫描方法扫描出视频、音频文件来。 所以可以自行添加一个扫描手机内存的方法,在扫描完之后,再使用传统的视频、音频文件获取方式获取来获取。 以下两个方法是用来启动

Intents的博客 8563

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[转]---Android获取SD卡视频音频文件

获取视频文件: 1 ContentResolver contentResolver = mContext.getContentResolver(); 2 String[] projection = new String[]{MediaStore.Video.Media.TITLE}; 3 Cursor cursor = conte...

weixin_34166847的博客 99

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android sd 视频文件,Android 扫描SD卡中的所有视频文件

Android应该是已经把所有的视频文件音频都在开机时,扫描完毕然后存在本地SQLite数据库了,因此,我们“扫描”的最简单方法是读取这个已经存储好的数据库。但是这样做,在程序开启过程中,用户添加或删除了音频视频文件,此时需要重新mount相关设备,才能保证程序的正确性。另外一种方法是判断文件后缀,不如以上方法来的简单。下面简单介绍如何使用第一种方法读取SD卡中的所有视频文件布局文件:自动生成的即...

weixin_35275073的博客 762

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android获取SD卡上所有图片、视频缩略图和音乐专辑封面

Android获取SD卡上所有图片、视频缩略图和音乐专辑封面 分类:* Android  (4402)  (0)  举报  收藏 查询图片 首先,查询Android固有数据库,图片的Uri为Images.Media.EXTERNAL_CONTENT_URI。  以下为具体查询实例,FileInfo为自定义的数据模型。 public ArrayList

王人冉的博客 593

IDEA向安卓模拟器SD卡中导入文件

<-------个人网站传送门-------> 个人开发环境:Ubuntu18.04+IDEA2019.1+Android9.0 问题起源,开发一个简单Android播放器去播放SD卡上的视频/音频文件。由于需要将文件复制到模拟器的SD卡上,课本上...

越努力,越幸运!!! 2078

实验6 在应用程序中播放音频和视频

实验报告 课程名称 基于Android平台移动互联网开发 实验日期 4月15日 实验项目名称 在应用程序中播放音频和视频 实验地点 S3002 实验类型 □验证型√设计型 □综合型 学时 一、实验目的及要求...

weixin_30609331的博客 199

Android data/media虚拟sd卡,android如何获取SD卡上的多媒体文件

获取视频文件:ContentResolver contentResolver = mContext.getContentResolver();String[] projection = new String[]{MediaStore.Video.Media.TITLE};Cursor cursor = contentResolver.query(MediaStore.Video.Media.EXT...

weixin_32806343的博客 1037

Android 音乐播放器SD卡本地播放器实现

1、代码在码云:MusicPlayer: 简单实现安卓音乐本地SD卡音乐播放器 2、实现效果截图: 3、B站演示视频链接: 4、使用方法: 在模拟器/storage/emulated/Music目录下放入你的音频文件: 软件自动扫描加载。 ...

qq_50909707的博客 1829
上一篇: VC中建立使用WinPcap的开发环境
下一篇: javamail发送邮件
一码农
博客等级 码龄14年 2粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值