我无法使用 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);
我的清单包含
<uses-permission android:name="android.permission.INTERNET" />
这给出了“无法播放此视频”错误。
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 的视频播放器播放它没有问题。
根据 ffmpeg 的 ffprobe 工具,我可以验证媒体类型对 Android 来说不是奇特的东西。
Dropbox 是否在执行一些奇怪的转码伏都教,有没有办法让我以类似的方式进行这项工作?
编辑:这里有一些关于 DropBox 的编码 voodoo 的更多见解。