Android studio 读取sd卡mp3 播放音乐
发布日期:2021-06-24 15:21:30
浏览次数:5
分类:技术文章
本文共 3205 字,大约阅读时间需要 10 分钟。
第一步布局文件第二步权限 第三步 手机设置权限第四步 类package com.example.myapplication;import android.content.Context;import android.media.MediaPlayer;import android.os.Environment;import android.widget.Toast;import java.io.IOException;public class MP3Player { private MediaPlayer mp; private String path; private int length; public MP3Player(Context ctx) { mp = new MediaPlayer(); // 获取内部存储器绝对路径/sdcard/Download/ANewDay.mp3 path = Environment.getExternalStorageDirectory().getAbsolutePath(); path="/sdcard/Music/"; Toast.makeText(ctx, path, Toast.LENGTH_LONG).show(); } public int getPosition() { // 获取当前位置 return mp.getCurrentPosition(); } public int getLength() { return length; } public void init(String fileName) { path = path + "/" + fileName; try { // 存储在SD卡或其他文件路径下的媒体文件 mp.setDataSource(path); // 音乐文件准备 mp.prepare(); // 音乐文件长度 length = mp.getDuration(); } catch (IOException e) { e.printStackTrace(); } } public void play() { if (mp.isPlaying()) { mp.stop(); } else { mp.start(); } } public void pause() { mp.pause(); } public void stop() { mp.stop(); } public void destroy() { mp.release(); }}第五步主代码package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;import java.io.File;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private MP3Player mp3Player; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println("11111111"); System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)); ///mnt/sdcard/Music File file=new File("/sdcard/Music"); final File[] files=file.listFiles(); if (files == null){ Log.e("error","空目录"); } List s = new ArrayList<>(); for(int i =0;i arrayAdapter= new ArrayAdapter ( MainActivity.this, android.R.layout.simple_list_item_1,s); ListView listView = (ListView) findViewById(R.id.lv); listView.setAdapter(arrayAdapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { System.out.println(id); System.out.println(files[(int)id].getAbsolutePath()); mp3Player = new MP3Player(MainActivity.this); mp3Player.init(files[(int)id].getName()); mp3Player.play(); } }); }}
转载地址:https://blog.csdn.net/weixin_33595571/article/details/106914951 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月02日 19时10分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Dialog中Screen logic的处理逻辑原则
2019-04-28
【推荐】SAP关闭正在执行的缓慢的程序
2019-04-28
优化定制化abap代码必须遵守的经典黄金规则
2019-04-28
ABAP ALV里日期类型的F4帮助
2019-04-28
【转】后勤常用查询报告
2019-04-28
【基础】ABAP不同变量类型之间数值大小比较
2019-04-28
BAPI:BAPI_CONTRACT_CREATE(内部合同创建)
2019-04-28
SAP用户增强总结-采购订单建立增加客户数据增强示例
2019-04-28
采购合同增强Bapi代码
2019-04-28
在Dialog中实现下拉框效果并对下拉框赋自定义的值
2019-04-28
[概述] SAP增强基本含义及分类
2019-04-28
VL09增强-冲销校验
2019-04-28
ALV输出的时候,输出字段内容前面的空格
2019-04-28
ABAP delete的用法
2019-04-28
Dynpro程序抬头信息要求多值输入的解决方法
2019-04-28
企业主要财务指标有哪些
2019-04-28
【实用】SAP修改记录表开发
2019-04-28
SAP空格无法带出历史记录的解决办法
2019-04-28
为销售范围维护允许的销售凭证
2019-04-28