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 if (Java_MediaPlayerBridge_setDataSource( | 147 if (!Java_MediaPlayerBridge_setDataSource( |
148 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), | 148 env, j_media_player_bridge_.obj(), j_context, j_url_string.obj(), |
149 j_cookies.obj(), hide_url_log_)) { | 149 j_cookies.obj(), hide_url_log_)) { |
150 manager()->RequestMediaResources(player_id()); | |
151 Java_MediaPlayerBridge_prepareAsync( | |
152 env, j_media_player_bridge_.obj()); | |
153 } else { | |
154 OnMediaError(MEDIA_ERROR_FORMAT); | 150 OnMediaError(MEDIA_ERROR_FORMAT); |
| 151 return; |
155 } | 152 } |
| 153 |
| 154 manager()->RequestMediaResources(player_id()); |
| 155 if (!Java_MediaPlayerBridge_prepareAsync(env, j_media_player_bridge_.obj())) |
| 156 OnMediaError(MEDIA_ERROR_FORMAT); |
156 } | 157 } |
157 | 158 |
158 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) { | 159 void MediaPlayerBridge::OnCookiesRetrieved(const std::string& cookies) { |
159 cookies_ = cookies; | 160 cookies_ = cookies; |
160 ExtractMediaMetadata(url_.spec()); | 161 ExtractMediaMetadata(url_.spec()); |
161 } | 162 } |
162 | 163 |
163 void MediaPlayerBridge::ExtractMediaMetadata(const std::string& url) { | 164 void MediaPlayerBridge::ExtractMediaMetadata(const std::string& url) { |
164 manager()->GetMediaResourceGetter()->ExtractMediaMetadata( | 165 manager()->GetMediaResourceGetter()->ExtractMediaMetadata( |
165 url, cookies_, base::Bind(&MediaPlayerBridge::OnMediaMetadataExtracted, | 166 url, cookies_, base::Bind(&MediaPlayerBridge::OnMediaMetadataExtracted, |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 | 421 |
421 GURL MediaPlayerBridge::GetUrl() { | 422 GURL MediaPlayerBridge::GetUrl() { |
422 return url_; | 423 return url_; |
423 } | 424 } |
424 | 425 |
425 GURL MediaPlayerBridge::GetFirstPartyForCookies() { | 426 GURL MediaPlayerBridge::GetFirstPartyForCookies() { |
426 return first_party_for_cookies_; | 427 return first_party_for_cookies_; |
427 } | 428 } |
428 | 429 |
429 } // namespace media | 430 } // namespace media |
OLD | NEW |