Android 棉花糖 "Can't play this video" 错误

Android Marshmallow "Can't play this video" error

我正在将应用程序升级到 android 6.0。除了尝试从远程源播放某些视频时,一切似乎都很好。它们在我们的非 Marshmallow 设备上播放得很好(具体来说,我有一个 Galaxy S3 on 4.1.2 Jelly Bean 可以播放完全相同的视频,没问题)。我们在 6.0 上用多个设备进行了测试,问题似乎只局限于此 OS.

尝试以简单 videoview 格式播放视频时,我收到一条提示 "Can't play this video"。

我以前在 4.1.2 的其他视频上遇到过一些问题,我认为这可能是编解码器问题,我再次认为这可能是罪魁祸首。无法播放的视频都有这些共同点:

当我尝试用 videoview 启动 activity 时,这就是 logcat 吐出的内容。

201-801/? D/audio_hw_primary﹕ out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
201-800/? D/audio_hw_primary﹕ select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
201-800/? D/msm8974_platform﹕ platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
201-800/? D/audio_hw_primary﹕ enable_snd_device: snd_device(2: speaker)
201-800/? D/audio_hw_primary﹕ enable_audio_route: apply and update mixer path: low-latency-playback
777-1257/? I/MediaFocusControl﹕ AudioFocus  requestAudioFocus() from android.media.AudioManager@f9138b2 req=1flags=0x0
4591-4591/? W/MediaPlayer﹕ Couldn't open file on client side; trying server side: java.io.FileNotFoundException: No content provider: http://videopath.mp4
201-5605/? D/NuPlayer﹕ onSetVideoSurface(0xb48c2700, no video decoder)
777-811/? I/ActivityManager﹕ Displayed com.example.i.PityTheFooActivity: +108ms
1139-1139/? I/Keyboard.Facilitator﹕ onFinishInput()
201-5606/? E/GenericSource﹕ Failed to init from data source!
201-5605/? D/NuPlayerDriver﹕ notifyListener_l(0xb60986a0), (100, 1, -2147483648)
4591-4605/? E/MediaPlayer﹕ error (1, -2147483648)
4591-4591/? E/MediaPlayer﹕ Error (1,-2147483648)
4591-4591/? D/VideoView﹕ Error: 1,-2147483648

这是 Marshmallow 的已知问题,还是视频有问题?

带有 ODSM/SDSM 编解码器的视频可以绕过去隔行扫描,但似乎 AndroidMarshmallow 无法识别 ODSM/SDSM 编解码器,并且需要对视频进行去隔行扫描。以前的 OS 版本将无法播放未正常去隔行的视频,但包含 ODSM 或 SDSM 编解码器的视频文件除外。

我认为这是由于 Quicktime 支持问题,可能需要作为 Android Marshmallow 的缺陷打开,但也可能是 Google.

的意图