【发布时间】:2015-10-13 04:18:28
【问题描述】:
我无法在 Android 上获取捆绑音频文件的持续时间。
我试过了:
String stringDuration;
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
try {
mmr.setDataSource(fullpath);
stringDuration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
}
catch (IllegalArgumentException e) {
debugalert("androidbridgeGetdurationofsound IllegalArgumentException error getting duration: " + e.getMessage());
return 0;
}
catch (Exception e) {
debugalert("androidbridgeGetdurationofsound Exception error getting duration: " + e.getMessage());
return 0;
}
finally {
mmr.release();
}
它总是因 IllegalArgumentException 异常而失败。我不确定路径是否不正确(尝试了一些变体),该 MediaMetadataRetriever 类不支持媒体(尝试了 m4a 和 wav)还是什么。音频本身在 Android 上播放良好。
我尝试的一些路径变体是:
- assets/Assets/sounds/_TESTSOUNDWAVE.wav
- android.resource://com.package.name/assets/Assets/sounds/_TESTSOUNDWAVE.wav
我正在使用 Cocos2D-x v3.6。没有固有的(工作,afaik)方法来获取音频文件的持续时间(尝试使用 AudioEngine)。 以上代码来自Cocos2D-x的C++端通过JNI调用的activity的静态方法。
【问题讨论】:
标签: java android audio cocos2d-x-3.0