package tv.danmaku.media.resource;
import tv.danmaku.android.util.DebugLog;
import android.text.TextUtils;
public class Mrl {
private static final String TAG = Mrl.class.getSimpleName();
private String mRawMrl; // "http/youku/mp4://location"
private String mScheme; // "http", required
private String mPseudoAccess; // "youku", required for index url
private String mPseudoDemux; // "mp4", optional
private String mUrl;
private String mSchemeSpecificPart; // "//location"
public static Mrl parse(String rawMrl) {
Mrl mrl = new Mrl();
mrl.mRawMrl = rawMrl;
mrl.mScheme = null;
mrl.mPseudoAccess = null;
mrl.mPseudoDemux = null;
mrl.mSchemeSpecificPart = null;
String[] mrlComponents = mrl.mRawMrl.split(":", 2);
if (mrlComponents == null || mrlComponents.length < 2)
return mrl;
mrl.mSchemeSpecificPart = mrlComponents[1];
String[] moduleComponents = mrlComponents[0].split("/");
if (mrlComponents == null || mrlComponents.length < 1)
return mrl;
mrl.mScheme = moduleComponents[0];
if (TextUtils.isEmpty(mrl.mScheme)
|| TextUtils.isEmpty(mrl.mSchemeSpecificPart))
return mrl;
mrl.mUrl = String.format("%s:%s", mrl.mScheme, mrl.mSchemeSpecificPart);
if (moduleComponents.length >= 2)
mrl.mPseudoAccess = moduleComponents[1];
if (moduleComponents.length >= 3)
mrl.mPseudoDemux = moduleComponents[2];
return mrl;
}
@Override
public String toString() {
return mRawMrl;
}
final public String getRawMrl() {
return mRawMrl;
}
final public String getScheme() {
return mScheme;
}
final public String getPseudoAccess() {
return mPseudoAccess;
}
final public String getPseduoDemux() {
return mPseudoDemux;
}
final public String getUrl() {
return mUrl;
}
final public String getSchemeSpecificPart() {
return mSchemeSpecificPart;
}
final public void dump() {
DebugLog.ifmt(TAG, "mIndexMrl: %s", mRawMrl);
DebugLog.ifmt(TAG, "mScheme: %s", mScheme);
DebugLog.ifmt(TAG, "mPseudoAccess: %s", mPseudoAccess);
DebugLog.ifmt(TAG, "mPseudoDemux: %s", mPseudoDemux);
DebugLog.ifmt(TAG, "mSchemeSpecificPart: %s", mSchemeSpecificPart);
DebugLog.ifmt(TAG, "mRealIndexUrl: %s", mUrl);
}
}