Closed wlc520123 closed 8 years ago
WidevineTestMediaDrmCallback
to make it hit https://license.uat.widevine.com/cenc/getcontentkey/widevine_test
, since that's not its default. In ExoPlayer V2 this can be configured where you add the sample to the demo app.from preparing to end: 08-31 10:15:02.092 16172-16172/com.example.jieyingli.exoplayerdemo I/ExoPlayerImpl: Init 1.5.10 08-31 10:15:02.094 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: start [0] 08-31 10:15:02.095 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: state [0.00, false, P] 08-31 10:15:02.096 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: state [0.00, true, P] 08-31 10:15:02.169 16172-16400/com.example.jieyingli.exoplayerdemo D/mali_winsys: EGLint new_window_surface(egl_winsysdisplay, void_, EGLSurface, EGLConfig, egl_winsys_surface*, egl_color_bufferformat, EGLBoolean) returns 0x3000 08-31 10:15:02.191 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x8, cpu vir: 0x513b7000, handle:0x60bb95e0 08-31 10:15:02.220 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xa, cpu vir: 0x315b7000, handle:0x60bb8820 08-31 10:15:02.229 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x7, cpu vir: 0x3d1b7000, handle:0x60bb9900 08-31 10:15:02.234 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x6, cpu vir: 0x531b7000, handle:0x60bb9e00 08-31 10:15:02.235 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x5c9b7000, handle:0x60bb92c0 08-31 10:15:02.235 16172-16400/com.example.jieyingli.exoplayerdemo D/OpenGLRenderer: endAllActiveAnimators on 0x7f77a09400 (ExpandableListView) with handle 0x7f60bb3020 08-31 10:15:03.186 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: state [1.09, true, E] 08-31 10:15:03.216 16172-16400/com.example.jieyingli.exoplayerdemo D/mali_winsys: EGLint new_window_surface(egl_winsysdisplay, void, EGLSurface, EGLConfig, egl_winsys_surface*, egl_color_buffer_format, EGLBoolean) returns 0x3000 08-31 10:15:03.235 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x5fe36000, handle:0x60bb92c0 08-31 10:15:04.237 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x7, cpu vir: 0x602f6000, handle:0x60bb9e00 08-31 10:15:05.248 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x6, cpu vir: 0x5da36000, handle:0x60bb9900
twice more: 08-31 10:18:03.683 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x5fe36000, handle:0x60bb92c0 08-31 10:18:03.684 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x7, cpu vir: 0x602f6000, handle:0x60bb9e00 08-31 10:18:03.684 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x6, cpu vir: 0x5da36000, handle:0x60bb9900 08-31 10:18:03.717 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x6, cpu vir: 0x5cdb7000, handle:0x60bb9900 08-31 10:18:05.189 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: end [183.09] 08-31 10:18:05.210 16172-16400/com.example.jieyingli.exoplayerdemo D/mali_winsys: EGLint new_window_surface(egl_winsysdisplay, void_, EGLSurface, EGLConfig, egl_winsys_surface*, egl_color_bufferformat, EGLBoolean) returns 0x3000 08-31 10:18:05.226 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xf, cpu vir: 0x3f1b7000, handle:0x60bb92c0 08-31 10:18:05.239 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x3c3b7000, handle:0x60bb9d60 08-31 10:18:05.289 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xa, cpu vir: 0x315b7000, handle:0x60bb8820 08-31 10:18:05.289 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x6, cpu vir: 0x5cdb7000, handle:0x60bb9900 08-31 10:18:05.290 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x8, cpu vir: 0x513b7000, handle:0x60bb95e0 08-31 10:18:06.516 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x7, cpu vir: 0x5d1b7000, handle:0x60bb9360 08-31 10:18:06.616 16172-16172/com.example.jieyingli.exoplayerdemo I/ExoPlayerImpl: Init 1.5.10 08-31 10:18:06.617 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: start [0] 08-31 10:18:06.618 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: state [0.00, false, P] 08-31 10:18:06.619 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: state [0.00, true, P] 08-31 10:18:06.722 16172-16400/com.example.jieyingli.exoplayerdemo D/mali_winsys: EGLint new_window_surface(egl_winsysdisplay, void, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_bufferformat, EGLBoolean) returns 0x3000 08-31 10:18:06.748 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x6, cpu vir: 0x521b7000, handle:0x60bb8e60 08-31 10:18:06.774 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x8, cpu vir: 0x3b56e000, handle:0x60bba260 08-31 10:18:06.787 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xf, cpu vir: 0x3f1b7000, handle:0x60bb92c0 08-31 10:18:06.787 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x3c3b7000, handle:0x60bb9d60 08-31 10:18:06.788 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x7, cpu vir: 0x5d1b7000, handle:0x60bb9360 08-31 10:18:06.788 16172-16400/com.example.jieyingli.exoplayerdemo D/OpenGLRenderer: endAllActiveAnimators on 0x7f77a09400 (ExpandableListView) with handle 0x7f60a0ad80 08-31 10:18:08.310 16172-16172/com.example.jieyingli.exoplayerdemo D/EventLogger: state [1.69, true, E] 08-31 10:18:08.333 16172-16400/com.example.jieyingli.exoplayerdemo D/mali_winsys: EGLint new_window_surface(egl_winsysdisplay, void_, EGLSurface, EGLConfig, egl_winsys_surface__, egl_color_bufferformat, EGLBoolean) returns 0x3000 08-31 10:18:08.359 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0xa, cpu vir: 0x60257000, handle:0x60bb9360 08-31 10:18:08.383 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xf, cpu vir: 0x5cdb7000, handle:0x60bb9d60 08-31 10:18:09.364 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x6008d000, handle:0x60bb92c0 08-31 10:18:10.361 16172-16400/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x7, cpu vir: 0x5f56b000, handle:0x60bba3a0
I tried the original video huoguo.mp4 using exoplayer, and it playback well.
Then I tried the video huoguoen.mp4, there has an error: code add in sample LOCAL:
new Sample("huoguoen/mp4", "3031323334353640","widevine_test","http://192.168.1.253:8080/huoguoen.mp4", Util.TYPE_OTHER), error log:
08-31 15:19:43.534 21528-21552/com.example.jieyingli.exoplayerdemo D/OpenGLRenderer: endAllActiveAnimators on 0x7f94396000 (ExpandableListView) with handle 0x7f8a564300
08-31 15:19:48.666 21528-21624/com.example.jieyingli.exoplayerdemo W/AudioCapabilities: Unsupported mime audio/ima-adpcm
08-31 15:19:48.669 21528-21624/com.example.jieyingli.exoplayerdemo W/AudioCapabilities: Unsupported mime audio/mpeg-L1
08-31 15:19:48.671 21528-21624/com.example.jieyingli.exoplayerdemo W/AudioCapabilities: Unsupported mime audio/mpeg-L2
08-31 15:19:48.692 21528-21624/com.example.jieyingli.exoplayerdemo W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
08-31 15:19:48.701 21528-21624/com.example.jieyingli.exoplayerdemo W/VideoCapabilities: Unsupported mime video/mjpg
08-31 15:19:48.703 21528-21624/com.example.jieyingli.exoplayerdemo I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
08-31 15:19:48.713 21528-21624/com.example.jieyingli.exoplayerdemo W/VideoCapabilities: Unrecognized profile/level 0/0 for video/mpeg2
08-31 15:19:48.713 21528-21624/com.example.jieyingli.exoplayerdemo W/VideoCapabilities: Unrecognized profile/level 0/2 for video/mpeg2
08-31 15:19:48.714 21528-21624/com.example.jieyingli.exoplayerdemo W/VideoCapabilities: Unrecognized profile/level 0/3 for video/mpeg2
08-31 15:19:48.748 21528-21624/com.example.jieyingli.exoplayerdemo I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
08-31 15:19:48.756 21528-21528/com.example.jieyingli.exoplayerdemo D/EventLogger: state [5.46, true, B]
08-31 15:19:48.767 21528-21624/com.example.jieyingli.exoplayerdemo E/ExoPlayerImplInternal: Internal track renderer error.
com.google.android.exoplayer.ExoPlaybackException: Media requires a DrmSessionManager
at com.google.android.exoplayer.MediaCodecTrackRenderer.maybeInitCodec(MediaCodecTrackRenderer.java:356)
at com.google.android.exoplayer.MediaCodecTrackRenderer.onInputFormatChanged(MediaCodecTrackRenderer.java:797)
at com.google.android.exoplayer.MediaCodecVideoTrackRenderer.onInputFormatChanged(MediaCodecVideoTrackRenderer.java:333)
at com.google.android.exoplayer.MediaCodecTrackRenderer.readFormat(MediaCodecTrackRenderer.java:540)
at com.google.android.exoplayer.MediaCodecTrackRenderer.doSomeWork(MediaCodecTrackRenderer.java:523)
at com.google.android.exoplayer.SampleSourceTrackRenderer.doSomeWork(SampleSourceTrackRenderer.java:128)
at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:432)
at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:211)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
08-31 15:19:48.783 21528-21528/com.example.jieyingli.exoplayerdemo E/EventLogger: playerFailed [5.49]
com.google.android.exoplayer.ExoPlaybackException: Media requires a DrmSessionManager
at com.google.android.exoplayer.MediaCodecTrackRenderer.maybeInitCodec(MediaCodecTrackRenderer.java:356)
at com.google.android.exoplayer.MediaCodecTrackRenderer.onInputFormatChanged(MediaCodecTrackRenderer.java:797)
at com.google.android.exoplayer.MediaCodecVideoTrackRenderer.onInputFormatChanged(MediaCodecVideoTrackRenderer.java:333)
at com.google.android.exoplayer.MediaCodecTrackRenderer.readFormat(MediaCodecTrackRenderer.java:540)
at com.google.android.exoplayer.MediaCodecTrackRenderer.doSomeWork(MediaCodecTrackRenderer.java:523)
at com.google.android.exoplayer.SampleSourceTrackRenderer.doSomeWork(SampleSourceTrackRenderer.java:128)
at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:432)
at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:211)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
08-31 15:19:48.787 21528-21528/com.example.jieyingli.exoplayerdemo D/EventLogger: state [5.49, true, I]
08-31 15:19:48.809 21528-21552/com.example.jieyingli.exoplayerdemo D/mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000
08-31 15:19:48.856 21528-21552/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0xb, cpu vir: 0x89236000, handle:0x8c832a00
08-31 15:19:48.894 21528-21552/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xe, cpu vir: 0x7cdb7000, handle:0x8c832780
08-31 15:19:49.838 21528-21552/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x88b04000, handle:0x8c80a6e0
08-31 15:19:50.854 21528-21552/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x7, cpu vir: 0x88770000, handle:0x8c80a640
It indicates that the huoguoen.mp4 is a video protected with drm.
As stated previously, we need a full bug report taken shortly after reproducing the issue. Log snippets are not sufficient. A bug report is the full output of adb bugreport
. See here if you need more information.
Having said that, in this case the error is pretty clear:
com.google.android.exoplayer.ExoPlaybackException: Media requires a DrmSessionManager
You need to be instantiating and injecting a DrmSessionManager
instance into the renderers when you build the player. You can take a look at how it's done in DashRendererBuilder
as a guide. You'll need to modify ExtractorRendererBuilder
to do something similar, if you're trying to play a DRM protected mp4 using the demo app.
Sorry, I didn't understanding the requirment.
I add my video and mpd file in exoplayer demo, in sample.java, added:
public static final Sample[] LOCAL = new Sample[] {
new Sample("huoguoen/mpd", "3031323334353640","widevine_test","http://192.168.1.253:8080/huoguoen.mpd", Util.TYPE_DASH),
}
in SampleChooserActivity.java added:
group = new SampleGroup("local");
group.addAll(Samples.LOCAL);
log has none error message:
09-01 16:18:32.280 4384-4384/com.example.jieyingli.exoplayerdemo I/me: Util.SDK_INT=23
09-01 16:18:32.280 4384-4384/com.example.jieyingli.exoplayerdemo I/me: contenturi=http://192.168.1.253:8080/huoguoen.mpd contentTypt=0 provider=widevine_test
09-01 16:18:32.281 4384-4384/com.example.jieyingli.exoplayerdemo I/me: maybeRequestPermissio=false expected 0
09-01 16:18:32.281 4384-4384/com.example.jieyingli.exoplayerdemo I/me: player ==null
09-01 16:18:32.281 4384-4384/com.example.jieyingli.exoplayerdemo I/ExoPlayerImpl: Init 1.5.10
09-01 16:18:32.282 4384-4384/com.example.jieyingli.exoplayerdemo D/EventLogger: start [0]
09-01 16:18:32.283 4384-4384/com.example.jieyingli.exoplayerdemo I/me: playerNeedsPrepare
09-01 16:18:32.283 4384-4384/com.example.jieyingli.exoplayerdemo D/EventLogger: state [0.00, false, P]
09-01 16:18:32.284 4384-4384/com.example.jieyingli.exoplayerdemo I/me: player setsurface...
09-01 16:18:32.284 4384-4384/com.example.jieyingli.exoplayerdemo I/me: player setPlayWhenReady...
09-01 16:18:32.284 4384-4384/com.example.jieyingli.exoplayerdemo D/EventLogger: state [0.00, true, P]
09-01 16:18:32.371 4384-4426/com.example.jieyingli.exoplayerdemo D/mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000
09-01 16:18:32.398 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xb, cpu vir: 0x629b7000, handle:0x8557b1c0
09-01 16:18:32.422 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xc, cpu vir: 0x56db7000, handle:0x8557c660
09-01 16:18:32.435 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xd, cpu vir: 0x823b7000, handle:0x8557ca20
09-01 16:18:32.436 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xa, cpu vir: 0x75fb7000, handle:0x8557a180
09-01 16:18:32.436 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_unregister_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x78db7000, handle:0x8557b4e0
09-01 16:18:32.437 4384-4426/com.example.jieyingli.exoplayerdemo D/OpenGLRenderer: endAllActiveAnimators on 0x7f9b992000 (ExpandableListView) with handle 0x7f90633440
09-01 16:18:33.865 4384-4384/com.example.jieyingli.exoplayerdemo D/EventLogger: state [1.58, true, E]
09-01 16:18:33.887 4384-4426/com.example.jieyingli.exoplayerdemo D/mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000
09-01 16:18:33.906 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0xd, cpu vir: 0x8586e000, handle:0x8557b4e0
09-01 16:18:33.919 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:2560, f:0x1, usage:0x80000b00, ion_hnd: 0xe, cpu vir: 0x82a2a000, handle:0x8557a180
09-01 16:18:34.907 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0xa, cpu vir: 0x82036000, handle:0x8557ca20
09-01 16:18:35.912 4384-4426/com.example.jieyingli.exoplayerdemo I/gralloc.sp9860g: gralloc_register_buffer w:1440, h:308, f:0x1, usage:0x80000b00, ion_hnd: 0x9, cpu vir: 0x81ca2000, handle:0x855798c0
the bugreport after run exoplayer is in the attachement. 123.txt
In the most recent bug report, the player is simply enable to find the URL that you're pointing it to:
09-01 16:23:32.909 19069 19069 E EventLogger: com.google.android.exoplayer.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to http://192.168.1.253:8080/huoguoen.mpd
I'm going to go ahead and close this, since it's unclear that it's tracking an actual issue.
Issue:
I made a widevine protection video file(mp4) use shaka-packager (https://github.com/google/shaka-packager), and build my own server to put the video and mpd on it. When I add my own code in demo of exoplayer and play my video, playback failed. The status of player changes ether from preparing to idle or from preparing to end, while when I play videos in demo, I find that the status changes from preparing to buffering , then to end.
Issue reproducing:
2.Get a video (huoguo.mp4) and change it to widevine protection, using command: cd ~/shaka-packager/src/out/Debug
./packager input='huoguo.mp4',stream=video,output=huoguoen.mp4 \ --enable_widevine_encryption \ --key_server_url "https://license.uat.widevine.com/cenc/getcontentkey/widevine_test" \ --content_id "3031323334353640" \ --signer "widevine_test" \ --aes_signing_key "1ae8ccd0e7985cc0b6203a55855a1034afc252980e970ca90e5202689f947ab9" \ --aes_signing_iv "d58ce954203b7c9a9a9d467f59839249" \ --output_media_info
./mpd_generator \ --input "huoguoen.mp4.media_info" \ --output "huoguoen.mpd"
Finally, huoguoen.mp4 and huoguo.mpd can be generated. And huoguoen.mp4 can playback well at first 10s using pre-installed video player(without a widevine license server url).
3.build self simple server: Use a phone (marked as phone1) which can run as root ,and open 8080 as httpd service: adb shell busybox httpd -p 8080 -h /sdcard/www/
Then, push huoguoen.mp4 & huoguoen.mpd to /sdcard/www/: adb push /path/to/huoguoen.mp4 /sdcard/www/ adb push /path/to/huoguoen.mpd /sdcard/www/
Then, use another phone (marked as phone2) to playback the video huoguoen.mp4.
Phone1 and phone2 connect to the same wifi, and we can get the ip address of phone1 (e.g.192.168.1.2).
To verify connection well: Using phone2's browser, we input and goto http://192.168.1.2/huoguoen.mp4. The video can playback well at first 10s using pre-installed video player.
4.add this video source to exoplayer Get the source of exoplayer and make a self new project usting the demo. In samples.java, add codes:
private static final String WIDEVINE_GTS_MPD1 = "http://192.168.1.2:8080/huoguoen.mpd";
public static final Sample[] LOCAL = new Sample[] { new Sample("huoguoen", "3031323334353640","widevine_test","http://192.168.1.2:8080/huoguoen.mpd", Util.TYPE_DASH), new Sample("huoguoen1", "3031323334353640", "widevine_test", WIDEVINE_GTS_MPD1, Util.TYPE_DASH), };
In SampleChooserActivity.java add codes: group = new SampleGroup("local"); group.addAll(Samples.LOCAL);
5.build and run, after installed the apk, the main activity has a new list: -local ----huoguoen ----huoguoen1
6.playback the video added by my self: click the huoguoen or huoguoen1, the palyer can be display.
Question: The state of player chages from preparing to ended. The video do not playback .
The video sources: http://pan.baidu.com/s/1c2gGVPe no passward
Exoplayer version: I use git clone https://github.com/google/ExoPlayer at 15/8/2016