gpt4 book ai didi

android - 视频无法使用 Android 的原生 MediaPlayer 播放,但可以使用 Dropbox 的视频播放器播放

转载 作者:太空狗 更新时间:2023-10-29 13:32:46 24 4
gpt4 key购买 nike

我在使用 Android 的 MediaPlayer 播放某个 .3gp 文件(来自 Dropbox 链接)时遇到问题。然而,该文件在 Dropbox Android 应用程序中神奇地播放而没有任何问题。

我正在尝试使用它来播放它:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.dropbox.com/s/zpiqwmxka6llavt/SketchyFile.3gp"));
startActivity(intent);

我的 list 包含

<uses-permission android:name="android.permission.INTERNET" />

这给出了“无法播放此视频”错误。

error-screenshot

Logcat 显示:

I/NuCachedSource2(89): new range: offset= 2245017
I/ChromiumHTTPDataSource(89): connect to https://dl.dropbox.com/0/view/a1crokuhpprsaeo/SketchyFile.3gp @2245017
I/NuCachedSource2(89): ERROR_END_OF_STREAM
E/MediaPlayer(3629): error (1, -2147483648)
E/MediaPlayer(3629): Error (1,-2147483648)
D/VideoView(3629): Error: 1,-2147483648

如果我尝试从 Dropbox Android 应用程序播放它,Dropbox 的视频播放器播放它没有问题。

dropbox-success-screenshot

根据 ffmpeg 的 ffprobe 工具,我可以验证媒体类型不是 Android 特有的东西。

Dropbox 是否执行了一些奇怪的转码巫术,有没有办法让我以类似的方式完成这项工作?

编辑:这里还有一些insight into DropBox's encoding voodoo .

最佳答案

由于我既没有投递箱应用程序源也无法访问实际文件,因此我将根据几个假设做出最好的猜测。

native 应用程序无法播放该文件,因为它的格式无法在 native 应用程序中播放。你能说下载文件,把它放在sd卡里然后播放吗?如果不是,则手机不支持此格式。

dropbox player为什么要播放呢?基于相同的假设,我的猜测是 drop box 播放器在 jni 下方添加了自己的解码库(例如 ffmpeg )。所以它可以对此进行解码。

另一种可能的猜测:您正在尝试流式播放 3gp 文件,这是不可能的。HTTP pd 播放可能是可能的。再次,下载并从 SD 卡播放,如果可以播放,则可能是这个问题。可能不会提示此文件需要的提示。

Drop box 正在播放这个,因为 Dropbox 应用程序可能以某种方式通过其他一些 api 访问文件末尾的 header (您的巫术)?

同样,以上两个都是我对常见问题的猜测,因为我既没有 Dropbox 应用程序源,也没有访问您的文件的权限,也不知道您究竟是如何尝试使用 native 播放器播放视频的。也许以上提示之一有帮助.祝你好运!

编辑:看到的问题:Nexus S 不播放给定的本地文件或来自 http 链接的文件。事实证明,重新混合为 mp4 使 Nexus S 可以双向播放。这意味着某些 Android 设备的本地本地播放器不支持 3gp。

关于android - 视频无法使用 Android 的原生 MediaPlayer 播放,但可以使用 Dropbox 的视频播放器播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13724298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com