Adroid 多媒体(读取手机内存卡内的音乐文件)

Android开发 : 音乐播放器的实现 一、前言: 第一次做安卓的个人项目,还是比较轻松的,将平时学的知识用到点子上就好容易,遇到自己想实现的而且还不会的就上网自己查,或者去官网的安卓开发者手册读老英文,这一块是最耗实践的,我在项目中在添加随机播放,加入歌曲时间,用什么数据结构存储歌曲信息等地方花了很大精力去学习,毕竟网上的东西查到10篇有3篇是符合的,就一篇详细而且有用的,所以遇到自己不会的时候效率还是蛮低的。 二、功能介绍: 音乐播放器可以将手机SD卡中的音乐读取后加入到音乐播放器中,列出列表共听者欣赏,在音... 阅读详情
现在给大家实现的是利用手机内存卡里的音频文件去播放的,至于xml布局文件大家可以去看我上一篇博客的,因为这两篇博客是相关联的。现在就开始吧!

xml配置文件权限:(一定要加上)

[html]  view plain  copy
  1. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>  

activity--java代码:

[java]  view plain  copy
  1. package com.zking.laci.android27_playmusic;  
  2.   
  3. import android.media.AudioManager;  
  4. import android.media.MediaPlayer;  
  5. import android.net.Uri;  
  6. import android.os.Environment;  
  7. import android.support.v7.app.AppCompatActivity;  
  8. import android.os.Bundle;  
  9. import android.util.Log;  
  10. import android.view.View;  
  11. import android.widget.ImageButton;  
  12. import android.widget.SeekBar;  
  13.   
  14. import java.io.IOException;  
  15.   
  16. public class MainActivity extends AppCompatActivity {  
  17.   
  18.     private MediaPlayer mediaPlayer;  
  19.     private SeekBar sb_main_play;  
  20.   
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.activity_main);  
  25.         sb_main_play = (SeekBar) findViewById(R.id.sb_main_play);  
  26.   
  27.         sb_main_play.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {  
  28.             @Override  
  29.             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {  
  30.             }  
  31.   
  32.             @Override  
  33.             public void onStartTrackingTouch(SeekBar seekBar) {  
  34.             }  
  35.   
  36.             @Override  
  37.             public void onStopTrackingTouch(SeekBar seekBar) {  
  38.                 //获取当前进度条位置  
  39.                 int currentPosition=seekBar.getProgress();  
  40.                 //跳转到某个位置播放  
  41.                 mediaPlayer.seekTo(currentPosition);  
  42.             }  
  43.         });  
  44.     }  
  45.   
  46.     public void playOrPause(View view){  
  47.         ImageButton ib= (ImageButton) view;  
  48.         if(mediaPlayer==null){//如果没有歌  
  49.             //mediaPlayer = MediaPlayer.create(this, R.raw.a);  
  50.             if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){  
  51.                 String sdPath=Environment.getExternalStorageDirectory().getAbsolutePath();  
  52.                 mediaPlayer=new MediaPlayer();  
  53.                 //设置 mediaPlayer音频流的类型  
  54.                 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);  
  55.                 try {  
  56.                     //设置音源  
  57.                     mediaPlayer.setDataSource(this, Uri.parse("file://"+sdPath+"/s1.mp3"));  
  58.                     //准备(播放内存卡的时候需要准备)  
  59.                     mediaPlayer.prepare();  
  60.                 } catch (IOException e) {  
  61.                     e.printStackTrace();  
  62.                 }  
  63.                 mediaPlayer.start();  
  64.                 ib.setImageResource(android.R.drawable.ic_media_pause);  
  65.                 //获得音乐的播放时间  
  66.                 int time=mediaPlayer.getDuration();  
  67.                 //设置最大值为音乐播放的时间  
  68.                 sb_main_play.setMax(time);  
  69.                 new MyThread().start();  
  70.   
  71.             }  
  72.   
  73.         }else if(mediaPlayer.isPlaying()){//如果正在播放  
  74.             //暂停  
  75.             mediaPlayer.pause();  
  76.             //开始图标  
  77.             ib.setImageResource(android.R.drawable.ic_media_play);  
  78.         }else {  
  79.             //开始播放  
  80.             mediaPlayer.start();  
  81.             //暂停图标  
  82.             ib.setImageResource(android.R.drawable.ic_media_pause);  
  83.   
  84.         }  
  85.     }  
  86.   
  87.     class MyThread extends Thread{  
  88.         @Override  
  89.         public void run() {  
  90.             super.run();  
  91.             while(sb_main_play.getProgress()<sb_main_play.getMax()){  
  92.                 //获得音乐当前的播放位置  
  93.                 int currentPosition=mediaPlayer.getCurrentPosition();  
  94.                 sb_main_play.setProgress(currentPosition);  
  95.             }  
  96.         }  
  97.     }  
  98. }  
Android内容提供器读取手机中的音乐文件信息 1.加权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 2.读取资源: /** * 拿到本地音乐资源 * * @return */ public static List<Music> getMusic... 阅读详情

相关推荐

矩形口径喇叭天线设计——参数设置

我们建立好矩形口径喇叭天线的模型后(模型建立可参考B站相关视频或者李明洋的《HFSS天线设计》),如何修改参数达到我们的指标呢?

m0_57263863的博客 1万+

Android studio 读取sd卡mp3 播放音乐

第一步布局文件 <ListView android:id="@+id/lv" android:layout_width="409dp" android:layout_height="729dp" tools:layout_editor_absoluteX="1dp" tools:layout_editor_absoluteY="1dp" /> 第二步权限 <uses-permission andr

weixin_33595571的博客 5695

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1965

Android 从SD卡读入音频文件的

废话不说,上代码: 在工具类里写入如下代码可直接调用: public static List<MP3> getAllMP3(Context context){ List<MP3> data=new ArrayList<>(); int id=0; //游标获取SD卡内的数据 Cursor cursor=context.getContentResolver().query(MediaStore.

qq_50909707的博客 700

Android AICore的核心组件工作原理解析

AICore通过LoRA实现个性化适配Gemini Nano提供多模态智能Safety Features保障可信运行,构建了端侧AI的完整生态。这种设计不仅让手机等移动设备能处理复杂AI任务(如实时多模态交互),还通过隐私保护机制打破了传统云端AI的数据依赖,为未来“设备即AI基础设施”的愿景奠定了基础。输入触发:用户输入“刚提交了代码,等审核”→ 进入TEE加密处理。Gemini Nano基础生成:通过原始权重W_q生成初始回复候选。LoRA个性化微调:通过A'和B'计算ΔW,更新W_q。

1553

教程: 将 SolidWorks 设计导出为 ROS 的 URDF

请按照以下步骤应用自定义徽标纹理:创建徽标材质文件:techniquepass材质名称:测试/材质颜色属性:环境、漫反射、镜面和发射都设置为白色(1 1 1 1),这意味着该材质看起来完全是白色的。纹理 在表面应用纹理图像 logo.png。将材质文件复制到 gazebo matrial:复制徽标图像:将 “徽标 ”替换为机器人上徽标所在位置的适当参考值。按照以上步骤,您就可以在 Gazebo 中为机器人添加自定义材质和纹理,包括徽标。

机器人控制与仿真应用 2458

(三)读取本地音乐文件

在进行简聆APP开发时,既然是一个音乐播放器,那么本地音乐的读取时一定要的 首先,我们需要注意的是,读取本地音乐是要获取android存储权限的,权限如下 读取存储卡 --> android:name="android.permission.READ_EXTERNAL_STORAGE" /> 当然,在遇到系统为6.0及以上的手机还需要动态获取权限,这里暂时推荐一篇博文 我也是采用了

Android_xiong_st的博客 7509

【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇1(附项目源码)

生存和射击游戏一直是我的最爱,说起3D最普遍的应该就是射击系统了,你可以在任何情况下加入射击功能,所以我写下了这篇FPS开发记录。希望对你有帮助。在这个项目中,你将学习如何设计和实现射击系统、武器系统、玩家控制、场景设计等方面的内容。通过这个项目,你将深入了解游戏开发中的许多核心概念和技术,并且在实践中不断提升自己。本项目将带你从零开始逐步实现一个完整的第一人称射击游戏,并且会逐步引入一些高级功能,如特效、声音等。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 5500

Android 获取内部存储中音乐文件的正确姿势

最近想写一个音乐的小APP出来(doge),借此熟悉音频开发的相关技术。但是在获取内部存储的音乐文件时踩了一些坑...所以有了这篇帖子,简单介绍下Android的存储类别,以及如何获取内部存储中的音乐文件。

ezsxrtghjmk的博客 3912

LED灯闪烁实验:代码集成

LED灯闪烁实验已经全部完成,在该实验中使用了较多的工具链,涉及底层软件、建模、软件编译等。首先,通过STM32CubeMX工具进行STM32底层软件配置,可以大大减少手写代码的工作量。另外由于做了可视化,也降低了STM32的上手难度,提升效率。利用Simulink建模,可以在PC环境下验证应用层算法的正确性而不依赖于具体控制器,实现应用层算法和底层软件、控制器硬件的解耦。另外,图形化的建模方式也更加有利于开发者思考与分析,大量的封装库文件也可以降低开发的工作量。

u013288925的博客 369

国科大学习资料--机器学习方法与应用(叶齐祥)-期末考试题整理

国科大学习资料–机器学习方法与应用-期末考试题整理 ============================================================================================================================================================================================ =======================================

无名何许人的博客 2852

安卓实现读取手机内存中的所有音乐

读取手机内存中的音乐信息需要做如下几步:1)创建一个XML文件,存放获取到的信息,使用ListView控件2)创建一个新的XML文件,对LIstView中的item对象进行布局3)需要创建一个Music类用于存放需要获取的Music的主要信息4)需要创建一个帮助类,用于获取手机中的音乐信息,并通过一个集合类传递获取到的信息5)创建一个自定义适配器,用于加载ListView的每...

weixin_33948416的博客 860

AI翻译工具自动翻译日语视频生成srt中文字幕,支持离线轻松生成任意日语视频字幕!可选择支持显卡模式和cpu模式低显存也能用

【AI离线字幕神器:日语视频一键转中文字幕】推荐一款基于Faster-Whisper的本地化字幕工具,可离线生成日语视频的中文字幕(.srt格式),支持CPU/GPU加速处理。实测1小时视频最快4-5分钟完成翻译,无需联网保护隐私。操作简单只需拖拽文件,支持批量处理音频(mp3/wav)和视频(mp4/mkv)文件,还能自定义输出格式和参数调整。特别适合需要观看无字幕日语资料的用户,堪称技术宅必备神器。下载地址附后,包含详细使用教程和参数配置说明。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

Android Media(多媒体)获取手机内存卡下的音乐并播放

代码实现: package com.example.g160628_android_27_media; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.Environment; import android.sup

Li_Driver的博客 2644

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

AndroidStudio手机本地音乐的读取

1、在新建的工程里先新建三个package,分别命名为adapter,entity,fragment; 2、在entity中创建新的Activity文件定义Music的实体类:title、aritist、album、length,用public修饰在后面可以直接获取,如果用private修饰,则需要使用set、get方法; 3、创建行布局文件,在其中设置两个TextView、一个ImageVi

prettylife_sxm的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

第42篇 Android Studio实现音乐播放(四)读取手机存储的音乐

第42篇 Android Studio实现音乐播放(四)读取手机存储的音乐7.读取7.1.AndroidManifest.xml添加权限7.2.安装之后手动设置权限7.3.歌曲信息类7.4.读取歌曲 7.读取 整个程序我觉得最大的坑就是在这里了,我找了很多文章,但是都是只给一半的,比如他说添加一些代码,又没有指明文件或者文件中哪个位置,所以就想自己写一篇,也许有用。 7.1.AndroidManifest.xml添加权限 添加的是这两句,就是给读写权限。 <!-- 获取读写权限 -->

weixin_49188222的博客 5436

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android系列之音乐播放器的实现一(播放手机内存音频文件)

现在给大家实现的是利用手机内存卡里的音频文件去播放的,至于xml布局文件大家可以去看我上一篇博客的,因为这两篇博客是相关联的。现在就开始吧! xml配置文件权限:(一定要加上) activity--java代码: package com.zking.laci.android27_playmusic; import android.media.AudioManager; import

Apollo 3788

android-从音频数据库获取音乐数据

android-从音频数据库获取音乐数据 在android中,手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如音频,视频,图片等,将相应的信息放到定义好的数据库表格中。在这个程序中,我们不需要关心如何去扫描手机中的文件,只要了解如何查询和使用这些信息就可以了。 在android在的data/data下有一个数据库,专门用于存放媒体数据。

9527的博客 5784

【Android开发经验】如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992    今天一打开博客,发现一位朋友给我发了一封私信,请教下面的问题,所以特写此文章,为其解惑。    从这位朋友的提问中,我们需要了解下面的这些问题,才能给他很好的解答:(1)如何获取手机里所有歌曲的信息?(2)在歌曲文件发生改变,比如增删操作之后,如何及时的更新媒体库,从而获取到最新的歌曲信息?(3)在4

赵凯强 1万+

Android音乐播放器(2)从SD卡中读取音乐

home.xml: view sourceprint? 001.<?xml version="1.0" encoding="UTF-8"?> 002.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 003.xmlns:tools="http:

jcl490195138的博客 2389

android获取MP3文件的歌曲信息

MediaMetadataRetriever mmr = new MediaMetadataRetriever();   String str = getExternalStorageDirectory() + "1.mp3";   Log.d(TAG, "str:" + str);   try  {       mmr.setDataSource(str);       String

开发资料记录室 1万+

获取android手机内部存储空间和外…

原文 获取android文件系统的信息,需要Environment类和StatFs类的支持。 (1)Environment 是一个提供访问环境变量的类,常用的方法有:        A,getRootDirectory() ,返回File,获取Android 的根目录。        B,getDataDirectory() ,返回File ,获取Android 数据目录。       

sheng的博客 5616

Android获取的MP3音乐的专辑封面图片

网上好多都写的好复杂,找到一个最简单的方式,直接上代码: /** * 加载封面 * @param mediaUri MP3文件路径 */ private void loadingCover(String mediaUri) { MediaMetadataRetriever mediaMetadataRetriever=new Medi...

飞起来的小猪的博客 7122

Android获取手机中的所有音乐地址

//获取手机中的所有音乐 public static LinkedHashMap<Integer, MusicDatas> getAllMusicFile(Context context) { LinkedHashMap<Integer, MusicDatas> map = new LinkedHashMap<>(); ContentReso...

TGWhuli的博客 1866

Android获取本机各种类型文件列表(音乐、视频、图片、文档等)

介绍本篇介绍Android获取本机各种类型文件的方法,已经封装成工具类,末尾有源码下载地址。提示获取音乐、视频、图片、文档等文件是需要有读取SD卡的权限的,如果是6.0以下的系统,则直接在清单文件中声明SD卡读取权限即可;如果是6.0或以上,则需要动态申请权限。FileManager的使用FileManager是封装好的用于获取本机各类文件的工具类,使用方式如:FileManager.getInst

Chay_Chan的博客 2万+
上一篇: Android 多媒体(播放应用内的音乐)
下一篇: Android 多媒体(读取网络中的音乐文件)
南岸北栀
博客等级 码龄10年 32粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值