在活动之间传递媒体播放器对象

2024-03-28

我想知道如何在活动之间传递 MediaPlayer 对象,以便我可以在整个应用程序中保持恒定的声音播放。


你不“通过MediaPlayer活动之间的对象”。

您需要访问MediaPlayer从一个习惯Service http://developer.android.com/reference/android/app/Service.html在后台播放声音,并使您的活动与此服务交互。

对于交互,我个人的偏好是使用绑定AIDL http://developer.android.com/guide/developing/tools/aidl.html。每当我尝试使用简单的意图和onStartCommand() 它显示活动/服务交互不足(我也使用音频)。但它可能对你有用。

通过 AIDL 和绑定,您可以公开自定义函数,例如play(uri), pause(), rewind()等等....的MediaPlayer实例将被创建于play(uri)如果它尚未实例化并在您的服务中发布onDestroy().

你甚至可以注册一个监听器RemoteCallbackList获得有关职位变更或其他一些事件的通知。请参阅 AIDL 文档中的示例。这样做的好处是您的服务可以检测侦听器何时取消注册。这样,您可以在调用之前在服务中设置一个小超时stopSelf(),如果另一个侦听器(活动)没有快速注册。这很有用,因为您不一定知道某个活动是否因为用户按下主页按钮而暂停,或者因为他从一项活动循环到另一项活动而暂停。

是的,需要做一些工作;)

注意:您仍然需要致电startService()绑定之前,否则每当活动取消绑定时服务都会停止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在活动之间传递媒体播放器对象 的相关文章

随机推荐

  • 如何在 iPhone Web 应用程序中将方向锁定为纵向模式?

    我正在构建 iPhone Web 应用程序 并希望将方向锁定为纵向模式 这可能吗 有没有任何网络工具包扩展可以做到这一点 请注意 这是一个用 HTML 和 JavaScript 编写的适用于 Mobile Safari 的应用程序 而不是用
  • 如何将变量设为特征的私有变量?

    我想在一个类中多次重用某个功能 此功能依赖于私有变量 trait Address private address public function getAddress return this gt address public functi
  • ASP/ASP.NET 短标签的名称

    有没有一个特定的名字 Scott Gu 将这些称为 代码块 这就是我的看法 http weblogs asp net scottgu archive 2010 04 06 new lt gt syntax for html encoding
  • CSS float 将带有换行文本的 div 折叠到所需的最小值

    示例图片 And the 代码位于 JSBIN http jsbin com ucamOW 1 情况是 我正在尝试创建一个带有标签的复选框列表 每个复选框旁边都有一个 信息图标 这个想法是 如果您单击标签 它将触发复选框 正如它应该的那样
  • 出现故事板之前的选项卡栏项目标题

    我的应用程序从一个有 5 个选项卡的选项卡栏控制器开始 一开始 第一个出现了它的名字 但其他四个没有名字 直到我点击它们 然后根据用户使用的语言显示名称 如何在选项卡栏出现之前设置选项卡的名称 我正在使用故事板 当所有其余的事情都通过情节提
  • 从没有实例的类中获取字段的名称

    因此 我使用以下实用程序从类的实例中获取字段 属性的名称 public static string FieldName
  • 如何避免在 getView() 中设置内联 onClickListener

    我有带有自定义适配器的 ListView 每行都包含可点击的按钮和文本 目前 onClickListeners 已在主体中设置getView 这是一个非常疯狂的想法 因为这个方法被频繁调用 在每个 onClick 函数中 我需要访问私有数据
  • 意外的未定义引用

    我收到未定义的引用错误 不知道原因 所以我有 2 个创建静态库的文件 keyboard input c keyboard input h 这是 h 文件的内容 ifndef MOD KBINPUT define MOD KBINPUT in
  • TensorFlow 是否使用 GPU 上的所有硬件?

    The 英伟达 GP100 https images nvidia com content pdf tesla whitepaper pascal architecture whitepaper pdf有30个TPC电路和240个 纹理单元
  • 如何使用非 rake 参数调用 rake

    我有一个创建图表的 rake 任务 task diagram do rake erd filetype dot disconnected true end 这个任务的执行速度相当慢 我猜这是因为在嵌套的 rake invoke 语句中 整个
  • MAMP SSL 错误:“错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败”

    我正在 OS X Yosemite 上使用 MAMP 在本地计算机上开发一个网站 该网站是一个在 HTTPS 上运行的 API 的客户端应用程序 当我尝试从 PHP 调用 API 时 不断收到此错误 error 14077410 SSL r
  • 如何在 Xamarin 中填充表视图?

    我正在尝试将 C Windows 应用程序移植到 Mac 但我一直试图用一堆字符串填充表视图 表视图似乎有两列 这对我来说很好 但我不知道如何访问单元格 行 列或添加项目 在 Windows 中 我做了类似的事情 foreach var i
  • 在 macOS 上打印可执行文件的 rpath

    我想改变rpath一个可执行文件使用install name tool 但我不明白是什么rpath就是现在 install name tool既需要新的又需要旧的rpath是在命令行上给出的 我可以使用什么命令来打印rpathmacOS 下
  • 使用 ExclusiveStartKey 选项进行 AWS Dynamodb 扫描

    对于我最近的项目 我试图从 dynamodb 获取数据 除了我在参数中添加 exclusiveStartKey 选项之外 似乎一切正常 下面是我的代码 function scanDataFromDB datetime let params
  • PHP:标题后代码的效果(“位置:abc.html”)

    可以说 代码看起来像这样 if test header Location somefile html some PHP code header Location anotherfile html Is 一些 PHP 代码 上面执行了吗 如果
  • 如何从 PrimeFaces p:dataExporter 自定义 PDF,例如页面大小

    我想将 PDF 页面尺寸更改为 A4景观导出表时 但无论我做什么都无法完成它 这是我的代码
  • IE/Edge 不应用转换:转换为表格行

    当添加 CSS 转换时 例如transform translate 0px 45px 对于表行 Internet Explorer 已测试 10 和 11 和 Microsoft Edge 无法正确显示转换 使用一些简单的代码作为示例 ta
  • 使用 Python/Django 上传大文件

    我想知道通过使用 Django Python 的 Web 应用程序上传大约 4GB 大小的文件是否有任何影响 我记得过去使用 Java 进行流式上传是首选方法 但现在仍然如此吗 或者使用 Django Python 这样做是否完全安全 如果
  • SwiftUI 拖动手势坐标

    我正在尝试向我正在编写的应用程序添加评级系统 我的方法不太优雅 使用Stepper 如果可能的话 我想要一种交互式拖动方式来填充星级 我不确定是否DragGesture是我正在寻找的 这足够吗 另外 我不确定如何将坐标转换为正确的宽度以填充
  • 在活动之间传递媒体播放器对象

    我想知道如何在活动之间传递 MediaPlayer 对象 以便我可以在整个应用程序中保持恒定的声音播放 你不 通过MediaPlayer活动之间的对象 您需要访问MediaPlayer从一个习惯Service http developer