AndroidのMediaPlayerで特定の.3gpファイル(Dropboxリンクから)を再生するのに問題があります。ただし、ファイルはDropboxAndroidアプリから問題なく魔法のように再生されます。
私はこれを使ってそれをプレイしようとしています:
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のエンコーディングブードゥーについての洞察がもう少しあります。