android调用系统录音机或取声音文件后如何使用??

glee10 2014-07-28 02:35:53
我通过以下代码调用系统录音机或取声音文件:
Intent intentFromRecord=new Intent();
intentFromRecord.setType("audio/*");
intentFromRecord.setAction(Intent.ACTION_GET_CONTENT);
intentFromRecord.putExtra("return-data", true);
startActivityForResult(intentFromRecord,2);
但是返回的Uri怎么样用?
Uri uri = data.getData();
把它转为String存在SharedPrefereces内,取出来通过parse转为uri,再用MediaPlayer的setDataSource的两个方法:
setDataSource (String path)
setDataSource tDataSource (Context context, Uri uri)
都无法将取得的文件播放?
我的需求是要么存下路径存起来,要么取时干脆将另存为一个文件。
请问应如何实现?请前辈指教!

(注:上次取图片也遇到这种情况,后来查了很久,通过以下代码实现了,但声音文件又不知道如何处理了)
Uri uri = data.getData(); //将返回的结果
ContentResolver cr = this.getContentResolver();
Bitmap bmp=null;
bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));
再通过bmp.compress存为一个文件。
...全文
829 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
glee10 2014-07-31
  • 打赏
  • 举报
回复
试了下以下代码,不行:
引用
1.Uri uri = data.getData(); 2. 3.String[] proj = { MediaStore.Images.Media.DATA }; 4. 5.Cursor actualimagecursor = managedQuery(uri,proj,null,null,null); 6. 7.int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 8. 9.actualimagecursor.moveToFirst(); 10. 11.String img_path = actualimagecursor.getString(actual_image_column_index); 12. 13.File file = new File(img_path);
lionfresh 2014-07-28
  • 打赏
  • 举报
回复
Uri uri = data.getData(); 直接返回的就是Uri吗?
  • 打赏
  • 举报
回复

public static String UriToPath(Uri uri) {
        String path = null;
        ContentResolver cr = context.getContentResolver();
        Cursor cursor = cr.query(uri, null, null, null, null);
        cursor.moveToFirst();
        if (cursor != null) {
            path = cursor.getString(1);
            cursor.close();
        }
        return path;
    }
glee10 2014-07-28
  • 打赏
  • 举报
回复
通过以下代码可以取得文件流吗?然后怎么存为文件?声音文件好象没有类似于图片的BitmapFactory.decodeStream方法。 Uri uri = data.getData(); //将返回的结果 ContentResolver cr = this.getContentResolver(); Bitmap bmp=null; bmp = BitmapFactory.decodeStream(cr.openInputStream(uri));
  • 打赏
  • 举报
回复
引用 4 楼 glee10 的回复:
我查了下,存入文件内的返回内容是: content://media/external/audio/media/155576</string> 但是现在怎么取出来播放呢?请教一下。
读mediastore的数据库,取得路径 path,然后播放
glee10 2014-07-28
  • 打赏
  • 举报
回复
我查了下,存入文件内的返回内容是: content://media/external/audio/media/155576</string> 但是现在怎么取出来播放呢?请教一下。
glee10 2014-07-28
  • 打赏
  • 举报
回复
返回的不是URI吗?

80,492

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧