MediaPlayer mp=new MediaPlayer();
MediaPlayer mp1=new MediaPlayer();
AssetFileDescriptor afd = null;
AssetFileDescriptor afd1 = null;
afd = getAssets().openFd("m1.mp3");
afd1 = getAssets().openFd("m2.mp3");
mp.setDataSource(afd.getFileDescriptor());
mp1.setDataSource(afd1.getFileDescriptor());
mp.prepare();
mp.start();
为什么我的m1音乐播放完了还会播放m2音乐?很奇怪,请大家帮我看看到底怎么回事mediaplayer音乐
MediaPlayer mp1=new MediaPlayer();
AssetFileDescriptor afd = null;
AssetFileDescriptor afd1 = null;
afd = getAssets().openFd("m1.mp3");
afd1 = getAssets().openFd("m2.mp3");
mp.setDataSource(afd.getFileDescriptor());
mp1.setDataSource(afd1.getFileDescriptor());
mp.prepare();
mp.start();
为什么我的m1音乐播放完了还会播放m2音乐?很奇怪,请大家帮我看看到底怎么回事mediaplayer音乐
解决方案 »
- 安卓如何实现canvas的扩展
- 关于 Fragment 和 activity 的使用
- log如何指定打印到哪个buffer?
- 如何按照文件夹取得所有音乐文件?
- 如何通过URI获取数据库表指定列的数据类型?
- 新手问题啊,求大神解答
- ZXING识别区域,扫描二维码距离很远才能扫到
- 请问一下关于购物车的问题,如何实现单击listview一行中的一个button,让同一行中的editview值加一
- Android开发,关于手机蓝牙通过HID实现和蓝牙键盘的通信问题
- Android service类进行数据库操作
- Android移动设备和Web网页同时访问服务器时,中间层用什么开发合适?希望给予方向性指点。
- http://www.google.com/loc/json停用了,有什么好的替代方法?
afd.getFileDescriptor()
返回的是这个类型 AssetFileDescriptor
SDK中的解释
File descriptor of an entry in the AssetManager. This provides your own opened FileDescriptor that can be used to read the data, as well as the offset and length of that entry's data in the file setDataSource(FileDescriptor)
你加载了一个过滤器 所以 你mp setDataSource 的时候 将你的 m1 m2 都设置上去了 所以两个音乐都播放了。这个是我对我SDK 的分析理解 如果你需要测试 你可以将两个音乐放到 SD卡上 在写一个 文件过滤器设置里面 你看是否 会播放两个音乐。