【问题标题】:Mediaplayer, exoplayer and audio streamingMediaplayer、exoplayer 和音频流
【发布时间】:2015-02-26 18:03:22
【问题描述】:

我正在开发一个流式传输音频的 Android 应用。我目前正在使用 Android MediaPlayer。如果我在流式传输时寻找音频文件中的某个位置,同时寻找已下载到我的 Mac 的同一音频文件中的同一位置(使用 QuickTime Player),我不会找到相同的音频位置。显示屏显示我在同一位置 (02:49:54),但音频播放的声音不一样(流媒体服务器比正确位置晚 20-40 秒)。我尝试了 Exoplayer Demo 应用程序,并用我自己的流 url 替换了其中一个静态 url。 Exoplayer也会发生同样的事情。我作为 iOS 开发人员工作的朋友在流式传输时(使用相同的流式传输服务器)寻找正确的位置没有问题。我还有一个问题,有时流在实际音频流完成前几秒钟就停止了。我希望 Exoplayer 能解决我的问题,因为旧的 MediaPlayer 似乎有点问题。有人知道我为什么会遇到这些问题吗?

【问题讨论】:

  • 我现在已经测试了 Vitamio vitamio.org/en 。 Vitamio 没有这个错误,它寻求正确的位置。但目前我无法让 Vitamio 与我当前的实现一起工作。
  • 哪个文件是?可以分享一下网址吗?
  • @KasperFinneNielsen 我遇到了类似的问题,对我来说,Android 流可以工作,但搜索不能。我收到Stream has no duration and is therefore not seekable 消息。同时,在我朋友的 iOS 版本上完美运行。您找到解决此问题的方法了吗?

标签: android audio streaming android-mediaplayer exoplayer


【解决方案1】:

我已通过在 LAME 命令中添加 -t 来解决此问题,该命令用于减小 mp3 的大小。如果添加 -t 选项,则不会将额外的 LAME 信息写入音频文件:

Kaspers-MacBook-Pro:Bomben finne$ mediainfo bomben2.mp3 一般

全名:bomben2.mp3

格式:MPEG 音频

文件大小:67.9 MiB

时长:3 小时 17 万

整体比特率模式:恒定

整体比特率:48.0 Kbps

音频

格式:MPEG 音频

格式版本:版本 1

格式配置文件:第 3 层

时长:3 小时 17 万

比特率模式:恒定

比特率:48.0 Kbps

频道:1 个频道

采样率:32.0 KHz

压缩模式:有损

流大小:67.9 MiB (100%)

但这仍然应该修复,因为它在 iOS 上运行良好。现在您可以通过运行重现错误:

lame -m m --preset cbr 48 source.mp3 output.mp3

然后让它工作:

lame -t -m m --preset cbr 48 source.mp3 output.mp3

我创建了这个问题: https://code.google.com/p/android/issues/detail?id=158627&thanks=158627&ts=1425655288

【讨论】:

  • 嘿@Kasper 在没有专辑封面的情况下流式传输音频时如何隐藏播放器视图的黑屏?
  • 现在我刚刚将高度设置为一个小数字,并在我的控件中使用了匹配的背景
猜你喜欢
  • 2019-03-30
  • 1970-01-01
  • 2020-02-29
  • 2019-05-15
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 2021-08-11
  • 1970-01-01
相关资源
最近更新 更多