Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/base/android/media_player_bridge.h" | 5 #include "media/base/android/media_player_bridge.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 111 } | 111 } |
| 112 | 112 |
| 113 JNIEnv* env = base::android::AttachCurrentThread(); | 113 JNIEnv* env = base::android::AttachCurrentThread(); |
| 114 CHECK(env); | 114 CHECK(env); |
| 115 | 115 |
| 116 Java_MediaPlayerBridge_setSurface( | 116 Java_MediaPlayerBridge_setSurface( |
| 117 env, j_media_player_bridge_.obj(), surface.j_surface().obj()); | 117 env, j_media_player_bridge_.obj(), surface.j_surface().obj()); |
| 118 } | 118 } |
| 119 | 119 |
| 120 void MediaPlayerBridge::Prepare() { | 120 void MediaPlayerBridge::Prepare() { |
| 121 if (j_media_player_bridge_.is_null()) | 121 DCHECK(j_media_player_bridge_.is_null()); |
| 122 CreateJavaMediaPlayerBridge(); | 122 CreateJavaMediaPlayerBridge(); |
| 123 if (url_.SchemeIsFileSystem()) { | 123 if (url_.SchemeIsFileSystem()) { |
| 124 manager()->GetMediaResourceGetter()->GetPlatformPathFromFileSystemURL( | 124 manager()->GetMediaResourceGetter()->GetPlatformPathFromFileSystemURL( |
| 125 url_, base::Bind(&MediaPlayerBridge::SetDataSource, | 125 url_, base::Bind(&MediaPlayerBridge::SetDataSource, |
| 126 weak_this_.GetWeakPtr())); | 126 weak_this_.GetWeakPtr())); |
| 127 } else { | 127 } else { |
| 128 SetDataSource(url_.spec()); | 128 SetDataSource(url_.spec()); |
| 129 } | 129 } |
| 130 } | 130 } |
| 131 | 131 |
| 132 void MediaPlayerBridge::SetDataSource(const std::string& url) { | 132 void MediaPlayerBridge::SetDataSource(const std::string& url) { |
| 133 if (j_media_player_bridge_.is_null()) | 133 if (j_media_player_bridge_.is_null()) |
| 134 return; | 134 return; |
| 135 | 135 |
| 136 JNIEnv* env = base::android::AttachCurrentThread(); | 136 JNIEnv* env = base::android::AttachCurrentThread(); |
| 137 CHECK(env); | 137 CHECK(env); |
| 138 | 138 |
| 139 // Create a Java String for the URL. | 139 // Create a Java String for the URL. |
| 140 ScopedJavaLocalRef<jstring> j_url_string = ConvertUTF8ToJavaString(env, url); | 140 ScopedJavaLocalRef<jstring> j_url_string = ConvertUTF8ToJavaString(env, url); |
| 141 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString( | 141 ScopedJavaLocalRef<jstring> j_cookies = ConvertUTF8ToJavaString( |
| 142 env, cookies_); | 142 env, cookies_); |
| 143 | 143 |
| 144 jobject j_context = base::android::GetApplicationContext(); | 144 jobject j_context = base::android::GetApplicationContext(); |
| 145 DCHECK(j_context); | 145 DCHECK(j_context); |
| 146 | 146 |
| 147 bool success = false; | |
| 147 if (Java_MediaPlayerBridge_setDataSource( | 148 if (Java_MediaPlayerBridge_setDataSource( |
|
scherkus (not reviewing)
2013/11/15 23:14:05
I'd flip this around to use early returns
if (!Ja
qinmin
2013/11/16 00:00:19
Done.
| |
| 148 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), | 149 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), |
| 149 j_cookies.obj(), hide_url_log_)) { | 150 j_cookies.obj(), hide_url_log_)) { |
| 150 manager()->RequestMediaResources(player_id()); | 151 manager()->RequestMediaResources(player_id()); |
|
scherkus (not reviewing)
2013/11/15 23:14:05
do we need to call ReleaseMediaResources() if prep
qinmin
2013/11/16 00:00:19
No, we shouldn't.
The java MediaPlayer instance s
| |
| 151 Java_MediaPlayerBridge_prepareAsync( | 152 success = Java_MediaPlayerBridge_prepareAsync( |
| 152 env, j_media_player_bridge_.obj()); | 153 env, j_media_player_bridge_.obj()); |
| 153 } else { | 154 } |
| 155 | |
| 156 if (!success) | |
| 154 OnMediaError(MEDIA_ERROR_FORMAT); | 157 OnMediaError(MEDIA_ERROR_FORMAT); |
| 155 } | |
| 156 } | 158 } |
| 157 | 159 |
| 158 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) { | 160 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) { |
| 159 cookies_ = cookies; | 161 cookies_ = cookies; |
| 160 ExtractMediaMetadata(url_.spec()); | 162 ExtractMediaMetadata(url_.spec()); |
| 161 } | 163 } |
| 162 | 164 |
| 163 void MediaPlayerBridge::ExtractMediaMetadata(const std::string& url) { | 165 void MediaPlayerBridge::ExtractMediaMetadata(const std::string& url) { |
| 164 manager()->GetMediaResourceGetter()->ExtractMediaMetadata( | 166 manager()->GetMediaResourceGetter()->ExtractMediaMetadata( |
| 165 url, cookies_, base::Bind(&MediaPlayerBridge::OnMediaMetadataExtracted, | 167 url, cookies_, base::Bind(&MediaPlayerBridge::OnMediaMetadataExtracted, |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 420 | 422 |
| 421 GURL MediaPlayerBridge::GetUrl() { | 423 GURL MediaPlayerBridge::GetUrl() { |
| 422 return url_; | 424 return url_; |
| 423 } | 425 } |
| 424 | 426 |
| 425 GURL MediaPlayerBridge::GetFirstPartyForCookies() { | 427 GURL MediaPlayerBridge::GetFirstPartyForCookies() { |
| 426 return first_party_for_cookies_; | 428 return first_party_for_cookies_; |
| 427 } | 429 } |
| 428 | 430 |
| 429 } // namespace media | 431 } // namespace media |
| OLD | NEW |