Android 获取本地所有音频文件

首先需要建立一个音频文件的model类package com.example.yanshishow; //音乐的model类public class Music {String name;long size;String url;long duration;public String getName() {return name;}public void setName(String name) {this.name = name;}public long getSize() {return size;}public void setSize(long size) {this.size = size;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public long getDuration() {return duration;}public void setDuration(long duration) {this.duration = duration;}}然后就可以在activity里面写方法//查询本地的音乐文件private void loadFileData() {ContentResolver resolver = this.getContentResolver();Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);cursor.moveToFirst();musicList = new ArrayList();if (cursor.moveToFirst()) {do {String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); // 鏍囬long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE)); // 澶у皬String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)); // 鏃堕暱 String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)); if (duration >= 1000 && duration <= 900000) { Music music = new Music(); music.setName(title); music.setSize(size); music.setUrl(url); music.setDuration(duration); musicList.add(music); }} while(cursor.moveToNext());}List musicname = new ArrayList();for (Music music : musicList) {//将歌曲的名字都提取出来装在一个数组中musicname.add(music.getName());}Toast.makeText(MainActivity.this, musicname+"", 0).show();cursor.close();}最后调用这个方法就可以了
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Android 中下载 https 音频文件并播放可以分为以下几个步骤: 1. 在 AndroidManifest.xml 文件中添加网络权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 2. 使用 HttpsURLConnection 执行 https 请求,获取音频文件的输入流: ```java URL url = new URL("https://example.com/audio.mp3"); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); InputStream inputStream = connection.getInputStream(); ``` 3. 将输入流写入本地临时文件: ```java File file = new File(getCacheDir(), "audio.mp3"); FileOutputStream outputStream = new FileOutputStream(file); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, length); } outputStream.flush(); outputStream.close(); inputStream.close(); ``` 4. 使用 MediaPlayer 播放本地音频文件: ```java MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(file.getAbsolutePath()); mediaPlayer.prepare(); mediaPlayer.start(); ``` 完整的示例代码如下: ```java try { URL url = new URL("https://example.com/audio.mp3"); HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); InputStream inputStream = connection.getInputStream(); File file = new File(getCacheDir(), "audio.mp3"); FileOutputStream outputStream = new FileOutputStream(file); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, length); } outputStream.flush(); outputStream.close(); inputStream.close(); MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(file.getAbsolutePath()); mediaPlayer.prepare(); mediaPlayer.start(); } catch (IOException e) { e.printStackTrace(); } ``` 需要注意的是,在实际的应用程序中,我们需要添加异常处理、权限检查和错误提示等功能,以及在播放完毕后释放 MediaPlayer 资源。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值