Bug 1373377 - Remove the 'url must contain .m3u8' constrain. r?kikuo
MozReview-Commit-ID: GN7YefuNY9w
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHlsPlayer.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHlsPlayer.java
@@ -249,30 +249,16 @@ public class GeckoHlsPlayer implements B
return new DefaultDataSourceFactory(ctx, bandwidthMeter,
buildHttpDataSourceFactory(bandwidthMeter));
}
private HttpDataSource.Factory buildHttpDataSourceFactory(DefaultBandwidthMeter bandwidthMeter) {
return new DefaultHttpDataSourceFactory(AppConstants.USER_AGENT_FENNEC_MOBILE, bandwidthMeter);
}
- private MediaSource buildMediaSource(Uri uri, String overrideExtension) {
- if (DEBUG) { Log.d(LOGTAG, "buildMediaSource uri[" + uri + "]" + ", overridedExt[" + overrideExtension + "]"); }
- int type = Util.inferContentType(TextUtils.isEmpty(overrideExtension)
- ? uri.getLastPathSegment()
- : "." + overrideExtension);
- switch (type) {
- case C.TYPE_HLS:
- return new HlsMediaSource(uri, mMediaDataSourceFactory, mMainHandler, null);
- default:
- mResourceCallbacks.onError(ResourceError.UNSUPPORTED.code());
- throw new IllegalArgumentException("Unsupported type: " + type);
- }
- }
-
// To make sure that each player has a unique id, GeckoHlsPlayer should be
// created only from synchronized APIs in GeckoPlayerFactory.
public GeckoHlsPlayer() {
mPlayerId = sPlayerId.incrementAndGet();
if (DEBUG) { Log.d(LOGTAG, " construct player with id(" + mPlayerId + ")"); }
}
// Should be only called by GeckoPlayerFactory and GeckoHLSResourceWrapper.
@@ -536,17 +522,21 @@ public class GeckoHlsPlayer implements B
mRenderers[1] = mARenderer;
// Create ExoPlayer instance with specific components.
mPlayer = ExoPlayerFactory.newInstance(mRenderers, mTrackSelector);
mPlayer.addListener(this);
Uri uri = Uri.parse(url);
mMediaDataSourceFactory = buildDataSourceFactory(ctx, BANDWIDTH_METER);
- mMediaSource = buildMediaSource(uri, null);
+ mMediaSource = new HlsMediaSource(uri, mMediaDataSourceFactory, mMainHandler, null);
+ if (DEBUG) {
+ Log.d(LOGTAG, "Uri is " + uri +
+ ", ContentType is " + Util.inferContentType(uri.getLastPathSegment()));
+ }
mPlayer.prepare(mMediaSource);
mIsPlayerInitDone = true;
}
@Override
public boolean isLiveStream() {
return !mIsTimelineStatic;