Now all player related logic is centralized in PlayerContainer
Major changes:
Now both mobile and TV will only use one player instance
Flow change, coupled MediaSource with player. Now based on content, we dynamically create MediaSource first then create player instance.
DRM support: basically DRM requires DRM session and this session is not reusable between different content. For example, when switch back from ads to movie, we need open new DRM session. So player is refactored to take care of this automatically.
DRM fallback: because Android DRM list API is not reliable at all, we have to add video resource fallback. Basically server will send us a list of video resource, we'll try them all until either we get a playable content or we get a non-DRM content.
Since this is a pretty big change, we'll need a full test on player related stuff.
Now all player related logic is centralized in PlayerContainer
Major changes:
Now both mobile and TV will only use one player instance Flow change, coupled MediaSource with player. Now based on content, we dynamically create MediaSource first then create player instance. DRM support: basically DRM requires DRM session and this session is not reusable between different content. For example, when switch back from ads to movie, we need open new DRM session. So player is refactored to take care of this automatically. DRM fallback: because Android DRM list API is not reliable at all, we have to add video resource fallback. Basically server will send us a list of video resource, we'll try them all until either we get a playable content or we get a non-DRM content. Since this is a pretty big change, we'll need a full test on player related stuff.