zoukankan      html  css  js  c++  java
  • 16 读取音乐文件

    • 所需权限

      <!--Sd读写权限  -->
          <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    • java代码:

      package com.qf.day16_contentresolver_music_demo3;
      
      import java.io.File;
      
      import android.annotation.SuppressLint;
      import android.app.Activity;
      import android.content.ContentResolver;
      import android.content.Intent;
      import android.database.Cursor;
      import android.net.Uri;
      import android.os.Bundle;
      import android.provider.MediaStore;
      import android.provider.MediaStore.Audio.Media;
      import android.view.View;
      import android.widget.AdapterView;
      import android.widget.AdapterView.OnItemClickListener;
      import android.widget.ListView;
      import android.widget.SimpleCursorAdapter;
      import android.widget.TextView;
      
      /**
       * 
       * 获取音乐
       *
       */
      public class MainActivity extends Activity {
      
          private ListView lv;
          private TextView tv;
      
          private ContentResolver contentResolver;
      
          //获取音频的Uri对象
          private Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
          SimpleCursorAdapter adapter;
          @SuppressLint("NewApi")
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
      
              lv = (ListView) findViewById(R.id.lv);
              tv = (TextView) findViewById(R.id.tv);
      
              contentResolver = getContentResolver();
      
              //获取Sd卡里音乐的数据  
              //Media._ID 如果要用SimpleCursorAdaptet必须要查找此字段
              //Media.DISPLAY_NAME 音乐名 XXX.MP4
              //Media.DATA 绝对路径 
              //Media.TITLE  音乐名 XXX
              Cursor cursor = contentResolver.query(uri, 
                      new String[]{Media._ID,
                      Media.DISPLAY_NAME,
                      Media.DATA,
                      Media.TITLE}, null, null, null);
      
               adapter = new SimpleCursorAdapter
                      (MainActivity.this, R.layout.item, 
                              cursor, new String[]{Media.DISPLAY_NAME,
                              Media.DATA,
                              Media.TITLE}, 
                              new int[]{R.id.tv_name,R.id.tv_data,R.id.tv_title},
                              SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
      
      
              lv.setAdapter(adapter);
              lv.setEmptyView(tv);
      
              lv.setOnItemClickListener(new OnItemClickListener() {
      
                  @Override
                  public void onItemClick(AdapterView<?> parent, View view,
                          int position, long id) {
                      // TODO Auto-generated method stub
      
                      //获取当前位置的数据
                      Cursor c = (Cursor) adapter.getItem(position);
                      //获取音乐的 路径
                      String path = c.getString(c.getColumnIndex(Media.DATA));
      
                      //播放音乐
                      Intent intent= new Intent();
                      intent.setAction(Intent.ACTION_VIEW);
                      intent.setDataAndType(Uri.fromFile(new File(path)), "audio/*");
                      startActivity(intent);
                  }
              });
          }
      
      
      }
      
    • layout 布局代码:
      activity_main2.xml:

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:paddingBottom="@dimen/activity_vertical_margin"
          android:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          tools:context=".MainActivity" >
      
          <ListView
              android:id="@+id/lv"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
             />
      
          <TextView 
              android:id="@+id/tv"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:textSize="30sp"
              android:textColor="#f00"
              android:text="暂无数据"
              />
      
      </RelativeLayout>
      

      item.xml:
      填充list布局

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent" >
      
          <ImageView
              android:id="@+id/iv"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:src="@drawable/ic_launcher" />
      
          <TextView
              android:id="@+id/tv_name"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_toRightOf="@id/iv"
              android:singleLine="true"
              android:text="aaa" />
      
          <TextView
              android:id="@+id/tv_data"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_below="@id/tv_name"
              android:layout_toRightOf="@id/iv"
              android:singleLine="true"
              android:text="aaa" />
      
          <TextView
              android:id="@+id/tv_title"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_below="@id/tv_data"
              android:layout_toRightOf="@id/iv"
              android:singleLine="true"
              android:text="aaa" />
      
      </RelativeLayout>
  • 相关阅读:
    1.写一个Java程序,把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”; 2.编写单元测试进行测试; 3.用ElcEmma查看代码覆盖率,要求覆盖率达到100%
    1. 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”); 2. 编写单元测试进行测试; 3. 用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
    个人简介
    第六次作业
    第五次作业
    软件测试第二次作业(2)
    软件测试第二次作业(1)
    个人简介
    闽江学院2015-2016学年下学期《软件测试》课程-第六次博客作业
    闽江学院2015-2016学年下学期《软件测试》课程-第二次作业(个人作业)
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152242.html
Copyright © 2011-2022 走看看