`

读取本地音乐

阅读更多

private void ShowMp3List() {
  Cursor cursor = this.getContentResolver().query(
    MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,//音频的uri
    new String[] { MediaStore.Audio.Media.TITLE,    //歌曲名称
      MediaStore.Audio.Media.DURATION,    //歌曲持续的时间
      MediaStore.Audio.Media.ARTIST,       //歌手
      MediaStore.Audio.Media._ID,             //歌曲id
      MediaStore.Audio.Media.DISPLAY_NAME,
      MediaStore.Audio.Media.DATA,       //歌曲文件路径
      MediaStore.Audio.Media.ALBUM_ID }, null, null, null);
 
  if (null != cursor && cursor.getCount() == 0) {
   builder = new AlertDialog.Builder(this);
   builder.setMessage(R.string.music_list_tell).setPositiveButton(
     "aa", null);
   ad = builder.create();
   ad.show();
   listviews.setBackgroundResource(R.drawable.list_empty);
   return;

  }

  cursor.moveToFirst();//验证游标是否为空

  
 
  while(cursor.moveToNext){
   id = cursor.getInt(3);
   title= cursor.getString(0);
   artist = cursor.getString(2);
   path = cursor.getString(5).substring(4);
   alltime=(toTime(cursor.getInt(1)));

System.out.println(id+""+title+artist+path+alltime)
    }
  listview.setAdapter(new SimpleCursorAdapter(this, R.layout.item_listview, cursor, new String[]{MediaStore.Audio.Media._ID
                ,MediaStore.Audio.Media.ARTIST,MediaStore.Audio.Media.TITLE}, new int[]{R.id.imageView1,R.id.textView1,R.id.textView2}));

 }

/////////////////////////////////////////////////////////

MediaStore类是Android平台的多媒体数据库,它包含了音频,视频,图片等所有多媒体文件信息
media  是媒体的意思

MediaStore以ContentProvider的形式向外提供媒体数据库信息。通过Android平台提供的ContentProvider接口,可以方便的访问数据库信息。


MediaStore.Audio.Media类定义了媒体数据库中的歌曲信息
     歌曲ID:MediaStore.Audio.Media._ID
     歌曲的名称 :MediaStore.Audio.Media.TITLE
     MediaStore.Audio.Artists类定义了媒体数据库中的歌手信息
     MediaStore.Audio.Albums类定义了媒体数据库中的专辑信息
     MediaStore.Audio.Playlists类定义了媒体数据库中的播放列表信息
     歌曲文件的路径 :MediaStore.Audio.Media.DATA
     歌曲的总播放时长 :MediaStore.Audio.Media.DURATION
     歌曲文件的大小 :MediaStore.Audio.Media.SIZE
     MediaStore.Audio.Media.DISPLAY_NAME     歌曲id 歌首 歌名(1 周杰伦-爱的怒放.mp3)
     audio   adj. 听觉的,声音的;音频的

 

 

//fragment碎片

package com.wuxifu.musiclist;

import com.example.tabhost002.R;
import com.wuxifu.widget.MyPlayer;
import com.wuxifu.widget.MyService.MyBinder;

import android.database.Cursor;
import android.os.Binder;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;

public class SearchaLocalMusicFragment extends ListFragment
{
    private Button search;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState)
    {
        View inflate = inflater.inflate(R.layout.local_music, null);
        search =(Button) inflate.findViewById(R.id.search);
        iniSearch();
        return inflate;
    }
    private void iniSearch()
    {
       
    }
    private MyPlayer myPlayer;
    private MyBinder binder;
    @Override
    public void onActivityCreated(Bundle savedInstanceState)
    {
        super.onActivityCreated(savedInstanceState);
        String[] projection=new String[] { MediaStore.Audio.Media.TITLE,
                MediaStore.Audio.Media.DURATION,
                MediaStore.Audio.Media.ARTIST,
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DISPLAY_NAME,
                MediaStore.Audio.Media.DATA,
                MediaStore.Audio.Media.ALBUM_ID };
        final Cursor cursor = getActivity().getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
        if(!cursor.moveToFirst())
        {
            Log.e("cursor", "cursor为空 ");
            return ;
        }
       setListAdapter(new MusicListAdapter(getActivity(), cursor));
       getListView().setOnItemClickListener(new OnItemClickListener()
    {

      


        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id)
        {
            if(myPlayer==null || binder==null){
            myPlayer = (MyPlayer)getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment1);
            binder = myPlayer.getmBinder();
            }
            //先要让cursor移动要那一行,才能取那一行某列的数据,否则不行的
           if( cursor.moveToPosition(position)){
            String string=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
            binder.play(string);
           }
            }
    });
    }
}
///////////////////////////////

Cursor android.content.ContentResolver.query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

如   select id,name,age  from  wuxifu  where  id in (15,20)   order by age;

 String[] projection=new String[]{"id","name","age"}

//错的::::String selection=new String[]{"id"}

//正确的:::::

String selection=“id  in  (?,?)  ”;

String selectionArgs=new String[]{"110","20"};

 

 

分享到:
评论

相关推荐

    一个很强大的音乐播放器有同步显示歌词和读取本地音乐

    XpressMusic-master 提供的是一款功能强大的音乐播放软件,它具有同步显示歌词和读取本地音乐的能力。这样的特性使得用户在享受音乐的同时,可以更好地理解歌曲的含义,增强听歌体验。 一、音乐播放器核心功能 1. ...

    基于Android系统开发的一个读取本地音乐的播放器

    在Android平台上,开发一个能读取并播放本地音乐的应用程序是一项常见的任务,它涉及到多媒体处理、文件系统操作以及用户界面设计等多个方面的知识。这个项目标题表明我们正在讨论一个专为Android设计的本地音乐...

    Android音乐播放器,可直接运行,可以读取本地音频文件,按不同列表显示,点击可以进入播放界面,可以进行播放、暂停等基本功能

    这款名为"MyMusic"的音乐播放器应用程序具有基础的音乐播放功能,包括读取本地音频文件、按列表显示、播放控制等。以下是对这些知识点的详细解释: 1. **Android SDK**:Android软件开发工具包是开发Android应用的...

    Android源码网络本地音乐播放器

    1. **本地音乐播放**:本地音乐播放涉及到读取和处理设备上存储的音频文件。这通常需要使用`MediaStore`类来查询音频库,获取歌曲的信息,如标题、艺术家、专辑等。`ContentResolver`用于执行这些查询,返回一个`...

    本地音乐播放器源码.zip

    - 访问存储权限:由于读取本地音乐文件,应用可能需要请求READ_EXTERNAL_STORAGE权限。在Android 6.0及以上版本,这个权限需要在运行时动态获取。 8. **测试与调试** - 测试场景:开发过程中,需要覆盖多种情况...

    Android AS开发的音乐播放器 有音乐播放页面 本地音乐 和网络搜索

    9. **文件读写**:对于本地音乐文件,开发者可能需要处理文件的读取,确保能够正确获取到音乐文件的路径和内容。这可能涉及`File`类和`InputStream`/`OutputStream`的使用。 10. **权限管理**:Android 6.0以后,...

    C# 本地音乐播放器-源码

    4. **文件操作**:音乐播放器需要读取本地音乐文件,这就涉及到了文件操作。C#中的System.IO命名空间提供了File、Directory等类,用于查找、打开和读取文件。开发者需要熟练掌握如何遍历文件夹获取音乐文件,并将其...

    本地音乐文件加载

    这段代码展示了如何打开并读取本地音乐文件。`OpenRead`方法用于以只读方式打开文件,`Read`方法则用于读取文件内容到缓冲区。 在实际应用中,音乐文件可能包含元数据,比如艺术家、专辑、歌曲名等,这些信息可以...

    Android简易本地音乐播放器源码,基于Android的简易本地音乐播放器源码

    5. **文件遍历与选择**:为了找到并播放本地音乐,源码可能包含了读取设备存储上的音乐文件(通常位于外部存储的Music目录),这需要使用到文件I/O操作和文件遍历的技巧。 6. **ListView或RecyclerView**:为了展示...

    iOS 获取本地音乐文件

    在iOS平台上,获取本地音乐文件并进行播放是开发音视频应用的一个重要环节。这个过程涉及到多媒体框架、文件系统操作以及音频播放控制等多个方面。本文将详细介绍如何在iOS中实现这一功能,并提供相关知识点。 首先...

    Android应用源码仿酷狗本地音乐播放器

    2. **文件系统访问**:为了读取本地音乐文件,需要了解Android的文件系统访问机制,包括外部存储(External Storage)和内部存储(Internal Storage)。酷狗音乐播放器通常会遍历用户设备上的MP3或其他音频格式文件...

    WEB音乐播放器,纯JS+HTML实现的WEB音乐播放器,可支持的音乐文件可以是本地,也可以是音乐地址的URL

    4. **本地音乐文件**:通过File API,用户可以选择本地音乐文件进行播放,这需要配合`input type="file"`的HTML元素和`FileReader`对象读取文件内容。 5. **进度控制**:使用JavaScript获取和设置`currentTime`属性...

    安卓Android源码——适合新手学习的本地音乐播放器.zip

    7. **权限管理**:由于涉及到读取本地音乐文件,应用需要在AndroidManifest.xml中声明读写存储的权限。在Android 6.0及以上版本,还需要在运行时动态请求权限。 8. **事件监听**:理解如何使用OnClickListener等...

    安卓开发本地音乐播放器(Android Studio).zip

    在本项目中,我们主要探讨如何使用Android Studio开发一个本地音乐播放器,专注于安卓平台的Java编程技术。这个音乐播放器能够播放手机SD卡上的音乐,并提供了常见的播放控制功能,如开始、暂停、停止、播放、上一曲...

    Android Studio实现简单的本地音乐播放器

    超简单的,只有一个播放页面的音乐播放器,读取模拟器SD卡的音乐文件进行播放,可以点击歌曲列表的歌曲播放,还可以暂停和继续播放。 Android Studio:3.1.4 Gradle:gradle-4.4-all

    新创本地音乐php源程序

    在“新创本地音乐”项目中,你需要理解如何使用`move_uploaded_file()`函数安全地将上传的MP3文件移动到服务器的指定目录,并进行文件大小、类型等验证,防止非法文件上传。 3. 数据库操作: 要管理本地音乐,通常...

    本地音乐歌词及封面匹配支持MP3-flac-wav.rar

    标题中的“本地音乐歌词及封面匹配支持MP3-flac-wav.rar”表明这是一个与音乐播放相关的软件或工具,特别强调了它支持对MP3、FLAC和WAV这三种音频格式的本地音乐进行歌词和封面的匹配。这些功能通常在音乐播放器软件...

    html+css+js本地音乐播放器,实现音频可视化频谱

    用html+js实现的本地音乐播放器,无需插件即可运行,上传音乐、上一曲、下一曲、暂停、播放、列表循环、单曲循环、随机播放、音乐时长、进度条、进度条点击跳转播放这些基本功能都有,同时还实现了音频可视化,绘制...

    安卓本地音乐播放器

    - **权限管理**:获取读取存储权限以访问本地音乐,需要处理权限请求的用户交互。 - **设备兼容性**:针对不同分辨率、硬件性能的设备进行适配,确保播放质量。 - **音频焦点**:处理与其他应用争夺音频焦点的...

    安卓的本地音乐播放器 可显示歌词

    【安卓本地音乐播放器开发详解】 在安卓平台上,开发一个本地音乐播放器是常见的应用场景,尤其当这个播放器还能显示歌词并拥有动画效果时,它将为用户带来更丰富的体验。本项目“安卓的本地音乐播放器 可显示歌词...

Global site tag (gtag.js) - Google Analytics