1. 程式人生 > >獲取手機的音訊檔案展示並播放

獲取手機的音訊檔案展示並播放

獲取手機的音訊檔案展示在ListView 點選一個播放一個

/**
 * 獲取手機上的所有音樂點選開始播放
 */
public class MainActivity extends AppCompatActivity {
    private ListView listView;
    // 獲取外部儲存的 音訊檔案 也可以 修改為 視訊 Vedio 或內部儲存
    private Uri mediaUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    private SimpleCursorAdapter adapter;
    private MediaPlayer mPlayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.lv);
//        mPlayer = new MediaPlayer();
        ContentResolver resolver = getContentResolver();
        Cursor cursor = resolver.query(mediaUri,
                new String[] { MediaStore.Video.Media._ID, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATA, MediaStore.Video.Media.TITLE }, null, null, null);

        adapter = new SimpleCursorAdapter(MainActivity.this, R.layout.item_layout, cursor,
                new String[] { MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATA, MediaStore.Video.Media.TITLE },
                new int[] { R.id.diaplayname_tv, R.id.data_tv, R.id.title_tv },
                CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);

        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.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(MediaStore.Video.Media.DATA));

                // 系統播放音訊檔案
//                Intent intent = new Intent();
//                intent.setAction(Intent.ACTION_VIEW);
//                intent.setDataAndType(Uri.fromFile(new File(path)), "audio/*");
//                startActivity(intent);
                if(mPlayer!=null){
                     mPlayer.release();//釋放資源
                }
                mPlayer = MediaPlayer.create(MainActivity.this,Uri.parse(path));
                mPlayer.start();
            }
        });

    }

}


相關推薦

獲取手機音訊檔案展示播放

獲取手機的音訊檔案展示在ListView 點選一個播放一個 /** * 獲取手機上的所有音樂點選開始播放 */ public class MainActivity extends AppCompatActivity { private ListView list

[總結]Android 獲取本地視訊檔案路徑播放的幾種方式

Android 獲取本地視訊檔案路徑的方式 在android 專案開發過程中,遇到獲取本地視訊檔案的問題,記錄一下獲取本地檔案的幾種方式。 首先說下sdcard在手機中的掛載位置。 android手

ios獲取所有相簿的視訊播放

端午節前,把公司的專案忙完了,這幾天開始繼續DDPlayer的開發,熟悉程式碼之後,首先要解決的是:獲取並播放相簿裡面的視訊。 對於相簿中的視訊,我需要關注視訊的名稱、時常、格式、縮圖等資訊,因此,定義了表示視訊資訊的物件。 //AlbumVideoInfo.h #import <

mono for android 獲取手機照片或拍照裁剪儲存

using System; using Android.App; using Android.Content; using Android.Widget; using Android.OS; using Android.Graphics; using System.IO; names

android--獲取手機的IMSI碼,判斷是中國移動\中國聯通\中國電信

TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); /** 獲取SIM卡的IMSI碼 * SIM卡唯一標識

獲取手機相簿圖片顯示獲取路徑

Intent intent = new Intent();   intent.setAction(Intent.ACTION_PICK);   intent.setType("image/*")

AS3(flash)獲取MP3音訊檔案的位元率

基本的演算法是:【位元速率】(kbps)=【檔案大小】(位元組)X8/【時間】(秒)/1024 package { import flash.display.Sprite; import flash.events.Event; import flash.events

iOS 獲取手機的ip地址 傳給後臺(三步搞定)

第一步 建立一個NSObject 檔案 .h 檔案 寫 #import <Foundation/Foundation.h> @interface NSObject (GetIP)

C++生成指定頻率的正弦波wav音訊檔案以及生成播放資料

基於MTK平臺的工廠模式程式碼編寫的一個正弦波wav音訊檔案生成程式碼片 struct WavHead{ char RIFF[4]; //頭部分那個RIFF int size0;//存的是後面所有檔案大小 char WAVE[4]; char FM

Android獲取手機聯絡人匹配使用者表按字母A-Z排序展示

1、前言 最近在做公司專案的時候遇到一個新增手機聯絡人的需求,主要有以下幾個功能點: 讀取聯絡人:讀取使用者手機上的通訊錄裡的聯絡人列表 好友排序:按照拼音順序對好友進行排序,相容英文數字符號等 字母索引:右側字母導航條,既可拖動也可點選,聯動ListVi

用c++獲取音訊檔案的資訊 達到非同步播放的效果(2)

接著昨天的播放說 昨天的播放只能精確到秒級 在測試了之後 發現 要精確到毫秒(至少是100毫秒)的級別才能讓人聽不出來有問題 所以研究了下 發現可以用檔案大小 / 位元率 * 8 的方式來獲取到比較精確的播放時長(我自己的需求是控制到100ms) int bps = 0,

Android系列之音樂播放器的實現一(播放手機記憶體音訊檔案

現在給大家實現的是利用手機記憶體卡里的音訊檔案去播放的,至於xml佈局檔案大家可以去看我上一篇部落格的,因為這兩篇部落格是相關聯的。現在就開始吧!xml配置檔案許可權:(一定要加上) <uses-permission android:name="android.per

C# NAudio錄音和播放音訊檔案-實時繪製音訊波形圖(從音訊流資料獲取,而非裝置獲取

  NAudio的錄音和播放錄音都有對應的類,我在使用Wav格式進行錄音和播放錄音時使用的類時WaveIn和WaveOut,這兩個類是對功能的回撥和一些事件觸發。   在WaveIn和WaveOut之外還有對音訊流讀寫使用的WaveFileWriter和WaveFileReader類,具體細節可檢視其原始碼進

手機影音第十四天,本地音樂列表的展示播放(利用視頻播放的布局)

獲取本地音樂 共用視頻播放頁面來播放音樂 代碼已經托管到碼雲,有興趣的小夥伴可以下載看看 https://git.oschina.net/joy_yuan/MobilePlayer 效果圖: Android系統提供了MediaScanner,MediaProvider,MediaS

使用html5獲取當前手機的經緯度,接入百度地圖API,查詢出當前位置

api detail attribute spa rip coord component per bar 最近項目需要,稍微研究一下html5獲取當前地理位置的問題。 獲取當前位置的經緯度很簡單,一句代碼就搞定 [javascript] view plain cop

wave和pyaudio讀取wav語音檔案播放

需要模組:wave , pyAudio 程式如下: import pyaudio import wave CHUNK = 1024 # 從目錄中讀取語音 wf = wave.open('./2.wav', 'rb') # read data data = wf.readfra

iOS獲取App快取檔案的大小清除快取

App在處理網路資源時,一般都會做離線快取處理,其中最典型離線快取框架為SDWebImage。 但是,離線快取會佔用一定的儲存空間,所以快取清理功能基本成為資訊、購物、閱讀類app的標配功能。 下面用程式碼來分別介紹快取檔案大小的獲取及清除快取

iOS 通過iTunes共享檔案獲取手機沙盒Document目錄

iOS 系統提供了檔案共享支援 當手機通過資料線連線到 Mac 的 iTunes 時, 可以在 iTunes 將電腦上的檔案傳輸到 App 的沙盒目錄當中. 為 App 新增離線資料. 也可以將 App 沙盒目錄下儲存的檔案通過 iTunes 匯出到電腦當中. 使用方式: 其實開發當中需

(四)MFC學習之使用directSound播放音訊檔案

環境:windows10+vs2017 音訊格式要求:.wav  (8位24khz)(這是預設的) directx只能播放wav格式檔案 DirectSound提供了各種音效處理的支援,如:低延遲、3d立體和協調硬體等功能 vs2012開始,vs已經整合directx

Cocos creator製作微信小遊戲儲存圖片,音訊檔案到本地(手機,瀏覽器)

cocos creator打包生成的wx-downloader.js檔案儲存到本地會報 no such file or directory 沒有上級目錄錯誤,這就我們自己修改這個檔案,主要用到了微信小程式中的api FileSystemManger.access 和 FileSystemManage