Home | History | Annotate | Download | only in android
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "media/base/android/media_player_android.h"
      6 
      7 #include "base/android/jni_android.h"
      8 #include "base/logging.h"
      9 #include "base/message_loop/message_loop_proxy.h"
     10 #include "media/base/android/media_drm_bridge.h"
     11 #include "media/base/android/media_player_manager.h"
     12 
     13 namespace media {
     14 
     15 MediaPlayerAndroid::MediaPlayerAndroid(
     16     int player_id,
     17     MediaPlayerManager* manager,
     18     const RequestMediaResourcesCB& request_media_resources_cb,
     19     const GURL& frame_url)
     20     : request_media_resources_cb_(request_media_resources_cb),
     21       player_id_(player_id),
     22       manager_(manager),
     23       frame_url_(frame_url),
     24       weak_factory_(this) {
     25   listener_.reset(new MediaPlayerListener(base::MessageLoopProxy::current(),
     26                                           weak_factory_.GetWeakPtr()));
     27 }
     28 
     29 MediaPlayerAndroid::~MediaPlayerAndroid() {}
     30 
     31 GURL MediaPlayerAndroid::GetUrl() {
     32   return GURL();
     33 }
     34 
     35 GURL MediaPlayerAndroid::GetFirstPartyForCookies() {
     36   return GURL();
     37 }
     38 
     39 void MediaPlayerAndroid::SetCdm(BrowserCdm* /* cdm */) {
     40   // Players that support EME should override this.
     41   NOTREACHED() << "EME not supported on base MediaPlayerAndroid class.";
     42   return;
     43 }
     44 
     45 void MediaPlayerAndroid::OnVideoSizeChanged(int width, int height) {
     46   manager_->OnVideoSizeChanged(player_id(), width, height);
     47 }
     48 
     49 void MediaPlayerAndroid::OnMediaError(int error_type) {
     50   manager_->OnError(player_id(), error_type);
     51 }
     52 
     53 void MediaPlayerAndroid::OnBufferingUpdate(int percent) {
     54   manager_->OnBufferingUpdate(player_id(), percent);
     55 }
     56 
     57 void MediaPlayerAndroid::OnPlaybackComplete() {
     58   manager_->OnPlaybackComplete(player_id());
     59 }
     60 
     61 void MediaPlayerAndroid::OnMediaInterrupted() {
     62   manager_->OnMediaInterrupted(player_id());
     63 }
     64 
     65 void MediaPlayerAndroid::OnSeekComplete() {
     66   manager_->OnSeekComplete(player_id(), GetCurrentTime());
     67 }
     68 
     69 void MediaPlayerAndroid::OnMediaPrepared() {}
     70 
     71 void MediaPlayerAndroid::AttachListener(jobject j_media_player) {
     72   jobject j_context = base::android::GetApplicationContext();
     73   DCHECK(j_context);
     74 
     75   listener_->CreateMediaPlayerListener(j_context, j_media_player);
     76 }
     77 
     78 void MediaPlayerAndroid::DetachListener() {
     79   listener_->ReleaseMediaPlayerListenerResources();
     80 }
     81 
     82 
     83 }  // namespace media
     84