如何从本机 android 代码(代号一)访问默认包中的文件
how to access files in default package from native android code (Codename One)
由于当应用程序处于 not 运行 时我无法使用 Media 对象进行播放,但我必须在该状态下播放媒体文件,我需要一个解决方案来从本机代码访问媒体文件并为本机媒体播放器引用它们(通过路径或输入流)。我仍然想以这种方式放置相关文件,这样就不会成为从本机 iOS 代码访问它们的负担。
我在考虑两个选项,但在我的实施中无法真正管理。
- 将相关数据文件放在 GuiBuilder 的数据部分,并通过 Resources 对象访问它们(并调用
getData(id)
)。但是当我尝试从 Android 上的本机代码在 Resources.open("/theme");
上创建一个 Resources
对象时,我得到以下异常:java.io.IOException: /theme not found
.
- 将相关数据文件保存在默认包中,通过
Class.getResourceAsStream
或Class.getResource
访问。但我不知道如何指向这些文件。我尝试了各种方法,但都没有成功。
如果将媒体文件复制到 FileSystemStorage,在本机端访问应该相当容易。您可以将路径传递给您的本机界面。
也就是说,我已经开发了几个带有背景音频的 CN1 应用程序,没有问题。在 iOS 上,您只需提供 ios.background_modes=audio
构建提示,这样应用程序就可以在后台运行 运行。
如果您使用 Display.createBackgroundMedia()
方法创建媒体,那么 Android 也将使用后台服务来播放媒体。
由于当应用程序处于 not 运行 时我无法使用 Media 对象进行播放,但我必须在该状态下播放媒体文件,我需要一个解决方案来从本机代码访问媒体文件并为本机媒体播放器引用它们(通过路径或输入流)。我仍然想以这种方式放置相关文件,这样就不会成为从本机 iOS 代码访问它们的负担。 我在考虑两个选项,但在我的实施中无法真正管理。
- 将相关数据文件放在 GuiBuilder 的数据部分,并通过 Resources 对象访问它们(并调用
getData(id)
)。但是当我尝试从 Android 上的本机代码在Resources.open("/theme");
上创建一个Resources
对象时,我得到以下异常:java.io.IOException: /theme not found
. - 将相关数据文件保存在默认包中,通过
Class.getResourceAsStream
或Class.getResource
访问。但我不知道如何指向这些文件。我尝试了各种方法,但都没有成功。
如果将媒体文件复制到 FileSystemStorage,在本机端访问应该相当容易。您可以将路径传递给您的本机界面。
也就是说,我已经开发了几个带有背景音频的 CN1 应用程序,没有问题。在 iOS 上,您只需提供 ios.background_modes=audio
构建提示,这样应用程序就可以在后台运行 运行。
如果您使用 Display.createBackgroundMedia()
方法创建媒体,那么 Android 也将使用后台服务来播放媒体。