【问题标题】:FMOD how to load mp3 file with using mp3 file name as parameter in androidFMOD如何在android中使用mp3文件名作为参数加载mp3文件
【发布时间】:2012-08-19 14:11:34
【问题描述】:

我在加载 mp3 文件时遇到问题。 当我将 char 数组或 jstring 参数提供给 android java 本机方法时, c源文件不起作用。

可能路径参数不能正常工作。 有什么问题?

请回答我的问题。

main.c


void Java_com_chocolate_player_PlayerMain_cPlaySound(JNIEnv env, jobject thiz, const char 路径) { FMOD_RESULT 结果 = FMOD_OK;

result = FMOD_System_CreateSound(gSystem, path, FMOD_CREATECOMPRESSEDSAMPLE | FMOD_OPENMEMORY, 0, &gSound);
CHECK_RESULT(result);

__android_log_write(ANDROID_LOG_INFO, "path", path);

result = FMOD_System_PlaySound(gSystem, FMOD_CHANNEL_FREE, gSound, 0, &gChannel);
CHECK_RESULT(result);

}

android java源码


在播放方法... char[] fmodPath = songPath.replace("/mnt", "").toCharArray(); cPlaySound(fmodPath);

原生方法... public native void cPlaySound(char[] path);

【问题讨论】:

  • songPath 示例是“sdcard/music/kara.mp3”

标签: android file load mp3 fmod


【解决方案1】:

为您的项目清单添加 READ_EXTERNAL_STORAGE 权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

且路径必须以“/”符号开头:

/sdcard/myfile.mp3

【讨论】:

  • 我添加了权限。 android.permission.WRITE_EXTERNAL_STORAGE 但结果相同;并添加了“/”。日志就像下一个 08-19 23:41:37.449: I/path(19222): (�@
  • 我确定文件名有问题...尝试添加您自己的本地方法,使用 fopen() 打开给定文件名并检查 i/o 错误...
  • 当我在 C 源代码中尝试时,我在 Android 和 C 源代码(main.c)中使用过“/sdcard/music/kara.mp3”,但在 Android 中它没有工作。
  • mIRC 中的图坦卡蒙,我能见到你吗?我可能会为这个问题而疯狂。呵呵呵呵...
  • 对不起,我现在不在线...正如我所说,尝试在 android 中创建自己的本机函数并检查为什么无法使用 fopen() 函数打开文件,然后检查结果...
猜你喜欢
  • 1970-01-01
  • 2013-01-09
  • 2019-02-23
  • 2021-12-11
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
  • 1970-01-01
相关资源
最近更新 更多