如何将 R.raw.twelve_chimes 等值从活动传递到服务?

发布于 2024-12-04 07:28:31 字数 451 浏览 0 评论 0原文

如果我在 res 的原始文件夹中有一个名为 December_chimes.mp3 的 mp3 文件,您能告诉我使用什么编码将其从我的活动传递到服务以及如何接收传递的信息吗?

目前我正在使用以下代码调用服务:

startService(new Intent(this, MyService.class));

在服务中,这就是我播放媒体文件的方式:

player = MediaPlayer.create(this, R.raw.twelve_chimes);
player.setLooping(false);
player.start();

如果无法传递 R.raw.twelve_chimes,是否可以将其作为传入和传入的字符串来完成有什么方法可以使用该字符串在服务中播放吗?

谢谢。

确实, 埃马德

If I have an mp3 file in the raw folder of res called twelve_chimes.mp3 can you show me what coding to use to pass this from my activity to a service and how to receive that passed information?

Currently I'm calling the service with this code:

startService(new Intent(this, MyService.class));

In the service, this is how I'm playing the media file:

player = MediaPlayer.create(this, R.raw.twelve_chimes);
player.setLooping(false);
player.start();

If passing R.raw.twelve_chimes is not possible, can it be done as a string that is passed in and in some way to use that string to be played in the service?

Thanks.

Truly,
Emad

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

捶死心动 2024-12-11 07:28:31

如果服务与 Activity 位于同一个 Android 包中,则服务应该可以使用 R.raw.twelve_chimes :您应该能够将其作为 Intent 中的 Integer 传递

Intent i = new Intent(this, MyService.class);
i.putExtra("OPTION", R.raw.twelve_chimes);

:服务的 onStartCommand:

player = MediaPlayer.create(this, intent.getIntExtra("OPTION"));
player.setLooping(false);
player.start();

可能需要一些更改来处理您调用 player 的位置,但这或多或少应该可以工作。

If the Service is in the same Android package as the Activity then R.raw.twelve_chimes should be available to the Service: you should be able to just pass it as an Integer in the Intent:

Intent i = new Intent(this, MyService.class);
i.putExtra("OPTION", R.raw.twelve_chimes);

and in the Service's onStartCommand:

player = MediaPlayer.create(this, intent.getIntExtra("OPTION"));
player.setLooping(false);
player.start();

May need some changes to deal with where you're calling player but that should more or less work.

蓝戈者 2024-12-11 07:28:31

在这种情况下,不应将该文件放置在 /res 文件夹中。将其放入项目的 /assets 文件夹中。然后就可以访问与 AssetManager

/ 的区别res/raw 和 /assets 文件夹是,可以将 /assets 中的文件作为二进制流访问。另一方面,可以本地化 /res 文件夹下的文件。

In this case, you should not place the file in the /res folder. Put it in the /assets folder of your Project. Then you can access it with the AssetManager

The difference between the /res/raw and the /assets folder is, one can access the files in /assets as binary Streams. On the other hand, one can localize files under the /res folder.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文