使用 android MediaPlayer 进行无缝播放

2023-12-13

我试图连续重复播放音频,没有任何间隙。我试过了,

mediaplayer.setLooping(true);

但它给出了重复时间之间的差距。并尝试了这个,

mediaplayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()  {
    @Override
    public void onCompletion(MediaPlayer mp)
    {
        mediaplayer.start();
    }
});

它也给出了一个间隙。我尝试过不同的音频格式。但这两种方法都不适合我。安卓还有其他方法吗?


当播放完成时,播放器引擎将检查所有曲目是否已完成,一旦完成,它将检查是否有looping旗帜。基于looping旗帜,一个seek to 0秒。作为查找的一部分,播放器引擎将从特定位置读取数据并开始播放。

延迟可能是由于seek实施以及由于存储介质 like sdcard除了重新初始化所有轨道并重新启动它们之外。因此,当玩家返回到起始位置时,存在一定的延迟。

底层循环实现可以在这个函数中找到AwesomePlayer::onStreamDone如图所示:http://androidxref.com/4.2.2_r1/xref/frameworks/av/media/libstagefright/AwesomePlayer.cpp#834

EDIT 1:

为实现真正的gapless playback,您还可以考虑setNextMediaPlayer()特征。

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

使用 android MediaPlayer 进行无缝播放 的相关文章

  • 使用arm-linux-gnueabi-gcc为Android交叉编译静态C hello world

    我想使用 arm linux gnueabi gcc 从 C 构建静态 hello world 而不是使用 NDK 独立工具链或 Codesourcery 在Ubuntu中 我做了以下事情 sudo apt get install gcc
  • 在 Android 中存储照片相关数据的最佳方式是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要为我的应用程序存储一些照片相关信息 据我所知 您可以向图像内容提供商读取 写入 GPS 位置和图像描述 我还需要添加用于云同步的字段 标志
  • AWS Device Farm 应用程序未列出任何设备

    我尝试使用 AWS Device Farm 在我的 AWS WorkSpace 中手动测试和调试来自 Android Studio 的应用程序 我下载了 Device Farm 应用程序 并按照所有说明进行操作 但当我尝试创建新的远程调试会
  • 为什么layout_width =“wrap_content”会占据屏幕的整个宽度?

    使用这个 xml
  • 运行带有 QVGA 的 Android 1.6 的模拟器上的缩放控件

    我正在模拟器中的不同 AVD 设置上测试我的应用程序 并在仅使用 QVGA 分辨率 lcd 密度 120 的 Android 1 6 上的 MapView 中遇到缩放控件问题 当点击屏幕以显示缩放控件时 放大 加号显示得比缩小大得多 这似乎
  • Google 分析“获取配置文件”不允许我选择我的帐户

    我已经根据最新的 v4 文档完成了一个有效的谷歌分析集成 我们需要去哪里获取配置文件 from 但面临以下问题 我的谷歌分析帐户上的两个不同的应用程序有两个不同的跟踪ID 对于第一个应用程序 我得到了谷歌服务 json我将文件放置在根目录中
  • 安卓写入文件

    经过几周的不编程之后 我决定完成我的应用程序 上次我无法进行文件写入和读取 现在我想做 我也许可以使用数据库 但这似乎容易得多 我已经发现this http narenst wordpress com 2010 01 25 android
  • 导入的项目抛出 java.lang.ClassNotFoundException

    所以我将一个现有的项目导入到 eclipse 中 但让它工作时遇到了很多麻烦 该项目与其他三个图书馆项目一起提供 谷歌播放服务库 捕获活动 肖像二维码 As soon as I imported the project I went und
  • 从图库加载图像时应用程序崩溃

    在我的应用程序中 我有两个按钮 一个用于从图库 从设备 加载图像 另一个用于通过访问设备的相机拍照 我的代码在某些设备上正常工作 bt在某些设备上 应用程序单击图库中的图像时崩溃 任何人都可以帮助我找出实际问题吗 public class
  • Android Ant项目参考

    我有一个 Android 项目 它有一个 Java 项目文件夹引用 我是用eclipse开发的 现在我想用Ant编译 我想在 build xml 中添加内容以包含引用 假设您的项目名为 HelloListview 比如说 并且您希望所有 A
  • adb 无法启动守护进程,CreateProcess 失败,错误 2

    我无法运行adb root或任何 adb 命令 我收到以下错误 我设置ADB TRACE 1 C WINDOWS system32 gt adb root system core adb adb c main Handling comman
  • 当我想用它来进行单独的 apk 测试时,出现“android.support.test.espresso 不存在”

    我需要在没有源代码的情况下对 Android 应用程序进行一些自动测试工作 我发现 Robotium 和 espresso 都可以完成这项工作 我决定使用 espresso 因为它有 Google 支持 我想使用相同的签名对目标 apk 和
  • Android SearchView 自定义

    我是 Android 新手 我被困在一些我认为很简单但我很困惑的事情上 我需要不在操作栏 工具栏中而是在我的相对布局中创建自定义 searchView 问题是我不知道如何自定义背景 文本输入颜色 XML 中的搜索图标颜色 或者只是它们的属性
  • 滑动抽屉上的按钮? - 安卓

    好吧 我已经在我正在构建的 Android 应用程序中的滑动抽屉上实现了一个按钮 唯一的问题是 当我按下按钮时 整个滑动抽屉都会被按下并向上滑动 我知道我可以在 XML 中禁用 按向上滑动 但这似乎不起作用 因为滑动抽屉仍然在没有向上滑动的
  • 加入牛轧糖热点

    我的应用程序有 2 个按钮 一个用于创建热点 另一个用于加入热点 流程是 我在其中一台设备上创建一个热点 然后尝试将其与其他设备连接 通过我的应用程序 问题是 有时我无法加入由 Nougat 设备创建的热点 它会卡在 获取 IP 地址 上
  • 从字符串中删除特定字符[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何从字符串中删除特定字符 我有一个 Arraylist 测试数组 String line testingarray get index
  • 如何获取任何已安装 Android 应用程序的清单权限

    是否可以获得任何已安装的 Android 应用程序的清单权限 感谢您的提示 让它运行 final Intent mainIntent new Intent Intent ACTION MAIN null mainIntent addCate
  • Android:将“内部”链接添加到 TextView 的一部分,该链接链接到我的代码中的操作

    正如标题所解释的 我想添加链接到我的TextView 有这两个警告 我希望链接能够作用于TextView 不是完整的 类似于AHTML 中的锚点 我希望链接指向我的代码中的操作 而不是网站 我可以在我的活动中定义一个方法 或者实现一个OnC
  • 找不到 com.android.tools.build:gradle:3.0.0 [重复]

    这个问题在这里已经有答案了 当我尝试从命令行构建可能的 Android 项目时 我收到以下错误消息 配置项目 mylib 时出现问题 无法解析配置 mylib classpath 的所有文件 找不到 com android tools bu
  • MediaRecorder 纵向模式下的视频捕获

    我正在尝试制作自定义视频应用程序 Iwork 使用清单中的设置仅 2 2 API 8 一切顺利 但我不明白为什么纵向模式视频与横向模式视频没有区别 为了检测设备改变的方向 我在 surfaceChanged 中使用此代码 if mCamer

随机推荐

  • 是否可以通过 JavaScript 关闭浏览器窗口?

    我希望能够使用 JavaScript 关闭浏览器窗口 这可能吗 window close
  • 在 R 中更改数据框列类的最佳方法

    这又是一个看似简单的问题 但是 我在 R 中有一个名为 d1 的小数据框 1 2 1 SHY 75000 2 IGLIX 25000 我想做的就是将第 2 列中的字符转换为数字 经过一个小时的摆弄后 我能弄清楚有效的是 a lt data
  • Glassfish 部署错误“无法识别 MyProject.jar 的存档类型”

    我创建了一个动态 Web 应用程序 我想用 glassfish 部署它 我已成功将源代码构建到 MyProject jar 但是当我部署它时 显示以下错误 远程故障 无法识别 home davenlin MyProject build My
  • 通过Spring MVC上传二进制文件到MySQL的正确方法

    我正在尝试将文件上传到 MySQL 但是我无法正确执行此操作 我正在使用云平台将 Java Spring 应用程序作为网站运行 控制器 byte bytes file getBytes file is MultipartFile DFile
  • 将变量传递到示例部分[重复]

    这个问题在这里已经有答案了 我设置了两个变量 假设在一个功能中 cityA New York 和 cityB Las Vegas 并将它们 导出 def表达 现在我想在另一个功能中使用这些变量 Scenario Outline Succes
  • Oracle sql查询按日期对连续记录进行分组

    使用下面的示例数据 我尝试以相同的速率对记录进行分组 id start date end date rate 1 01 01 2017 12 00 00 am 01 01 2017 12 00 00 am 300 1 02 01 2017
  • 为bazel、android tensorflow设置targetSdkVersion和compileSdkVersion

    我需要帮助如何为 bazel 设置目标和单独编译 Sdk 版本 我想在手机上运行tensorflowthis教程 编辑 bazel 的 WORKSPACE 后如下 android sdk repository name androidsdk
  • 加快 PLY 文件读取速度

    目前 我在 MATLAB 中使用以下代码段将 PLY 读入 MATLAB 矩阵 这是一个示例 PLY 文件 但当PLY文件很大时 需要相当长的时间 有没有更好的方法在 MATLAB 中高效读取文本文件 data textread fileN
  • Spring:标准日志方面(拦截器)

    我发现了很多关于如何使用 Spring 框架创建自定义方面进行日志记录的示例 例如this or this但没有找到这种情况和问题的标准 通用 Spring 实现 Spring 是否有日志记录方面的标准实现 是的 有
  • 如何在 Ubuntu 11.10 上编译 OpenJDK 7 调试版本

    我在哪里可以找到一组简单的指令来编译OpenJDKUbuntu 11 10 Oneiric 上的 7 调试版本 调试版本将使更多 JVM 选项可用于故障排除 例如 WizardMode The 开发者指南 and 构建自述文件有很多噪音并且
  • Python 类型错误问题

    我正在编写一个简单的程序来帮助为我所属的游戏生成订单 它属于我实际上不需要的程序类别 但现在我已经开始了 我希望它能发挥作用 一切都运行得很顺利 但我不知道如何阻止大约一半时发生的类型错误 这是代码 status 1 print b u m
  • 将每行的最后一个非零元素设置为零 - NumPy

    我有一个数组A A array 1 2 3 4 5 6 7 0 8 9 0 0 我想将每行的最后一个非零更改为 0 A array 1 2 3 0 5 6 0 0 8 0 0 0 如何为任何 n m numpy 数组编写代码 谢谢 S 方法
  • 使用 Java 配置在 Spring 中重定向 404 错误

    如您所知 在 XML 中 配置方法是
  • Java 对象的“相同性”是如何定义的?

    我想将自定义类型的对象添加到集合中 我有几个相同的 即它们的公共变量具有相同的值 我不希望将 同一 对象的多个实例添加到集合中 但每次创建新对象时 总是会添加它 这是因为 Object 类的 equals 方法在对象上实现了最具辨别力的可能
  • 禁用线性布局内的所有编辑文本

    我正在尝试禁用线性布局内的所有字段 该线性布局中有许多 edittext 和 textview 但是 我只是想禁用 edittext 我能够禁用所有孩子 但我希望能够禁用编辑文本 有什么办法可以做到这一点吗 Where ll是你的线性布局
  • 编写自定义函数时将列名称传递给 dplyr::coalesce()

    我正在尝试编写一个将包装的函数dplyr coalesce 并将接受数据对象和列名称来合并 到目前为止 我的尝试都失败了 示例数据 library dplyr df lt data frame col a c bob NA bob NA b
  • AppSync S3对象检索

    我的文件目前正在根据提供的教程上传到 s3 存储桶 我有一个 Post 类型 其文件字段指向 S3Object S3Object 具有bucket key 和region 的值 我想允许我的用户下载他们上传的文件 但我无法通过查询访问 发布
  • 覆盖 SaveChanges 并设置 ModifiedDate,但如何设置 ModifiedBy?

    我有一个 ASP NET MVC3 Web 应用程序 包含 UI 业务 实体 和数据 DbContext 层 我正在使用 Entity Framework 4 1 Code First 现在 我正在推翻DbContext SaveChang
  • 是否有人有批处理文件来应用并在 Clearcase 中创建标签或基线

    这里我需要一个批处理文件 它可以应用并创建标签或基线到透明案例项目中的版本化元素 如果有人有这个 请提供给我 如果要创建 UCM 基线 则无需先创建标签 只需进入您的视图并设置基线 cd m myView myVob myRootCompo
  • 使用 android MediaPlayer 进行无缝播放

    我试图连续重复播放音频 没有任何间隙 我试过了 mediaplayer setLooping true 但它给出了重复时间之间的差距 并尝试了这个 mediaplayer setOnCompletionListener new MediaP