- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
现在我正在使用 AssetFileDescriptor 开发音频播放器。但是这首歌(R.raw.music3)不会正常播放,我找不到我做错了什么,请帮我解决这个问题。
private void playAudio_UsingDescriptor() throws Exception{
AssetFileDescriptor fileDesc=getResources().openRawResourceFd(R.raw.music3);
sound2=new MediaPlayer();
sound2.setAudioStreamType(AudioManager.STREAM_MUSIC);
sound2.setDataSource(fileDesc.getFileDescriptor());
fileDesc.close();
sound2.prepareAsync();
sound2.start();
}
try {
playAudio_UsingDescriptor();
}
catch (Exception e){
sound2.start();
}
最佳答案
由于您已经在 /res/raw
目录中拥有音频文件,请尝试使用以下方法初始化您的 MediaPlayer
,而不是使用 AssetFileDescriptor
:
sound2 = MediaPlayer.create(MainActivity.this, R.raw.music3);
将 MainActivity.this
替换为适用的 Context
对象。
或者:
sound2 = new MediaPlayer();
AssetFileDescriptor afd = getResources().openRawResourceFd(R.raw.music3);
try
{
sound2.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
sound2.prepare();
}
catch (IOException e)
{}
sound2.start();
关于android - 使用 AssetFileDescriptor 播放音频不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24728388/
我在 res/raw 中有一个未压缩的二进制文件,我是这样阅读的: public byte[] file2Bytes (int rid) { byte[] buffer = null;
现在我正在使用 AssetFileDescriptor 开发音频播放器。但是这首歌(R.raw.music3)不会正常播放,我找不到我做错了什么,请帮我解决这个问题。 private void pla
Android API 中的 AssetFileDescriptor 确实有一个 close method .但是,文档指出这只是一种方便的方法。 AssetFileDescriptor 对象在使用后
我正在尝试使用以下代码从 Android /assets 文件夹中读取位图: AssetFileDescriptor fd = getAssets().openFd("pic1.jpg") Bitma
出于基准测试目的,我重复从 Assets 加载数据并使用 Superpowered SDK 处理它。为了使用 Superpowered SDK 打开 Assets ,我在 Java 端创建了一个 As
在 Android 7 中,getContentResolver().openAssetFileDescriptor(vCardUri, "r")返回 AssetFileDescriptor getD
我是一名优秀的程序员,十分优秀!