Add default header

pull/123/head
FongMi 3 years ago
parent 1f1faf0179
commit 81a7e1cbdb
  1. 3
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java
  2. 5
      app/src/main/java/com/fongmi/android/tv/utils/Utils.java
  3. 6
      ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java
  4. 17
      ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/Utils.java

@ -34,6 +34,8 @@ import com.google.android.exoplayer2.upstream.cache.CacheDataSource;
import com.google.android.exoplayer2.upstream.cache.NoOpCacheEvictor;
import com.google.android.exoplayer2.upstream.cache.SimpleCache;
import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.Util;
import com.google.common.net.HttpHeaders;
import java.util.ArrayList;
import java.util.Collections;
@ -106,6 +108,7 @@ public class ExoUtil {
}
private static synchronized DataSource.Factory getDataSourceFactory(Map<String, String> headers) {
if (!headers.containsKey(HttpHeaders.USER_AGENT)) headers.put(HttpHeaders.USER_AGENT, Util.getUserAgent(App.get(), App.get().getPackageName()));
if (dataSourceFactory == null) dataSourceFactory = buildReadOnlyCacheDataSource(new DefaultDataSource.Factory(App.get(), getHttpDataSourceFactory()), getCache());
httpDataSourceFactory.setDefaultRequestProperties(headers);
return dataSourceFactory;

@ -16,7 +16,6 @@ import androidx.fragment.app.FragmentActivity;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.server.Server;
import com.google.android.exoplayer2.util.Util;
import com.permissionx.guolindev.PermissionX;
import java.math.BigInteger;
@ -124,10 +123,6 @@ public class Utils {
}
}
public static String getUserAgent() {
return Util.getUserAgent(App.get(), App.get().getPackageName().concat(".").concat(getUUID()));
}
public static String getUUID() {
return Settings.Secure.getString(App.get().getContentResolver(), Settings.Secure.ANDROID_ID);
}

@ -176,9 +176,9 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
}
private void fixUserAgent() {
if (mHeaders == null || !mHeaders.containsKey("User-Agent")) return;
mIjkPlayer.setOption(format, "user_agent", mHeaders.get("User-Agent"));
mHeaders.remove("User-Agent");
if (!mHeaders.containsKey(Utils.USER_AGENT)) mHeaders.put(Utils.USER_AGENT, Utils.getUserAgent(mAppContext));
mIjkPlayer.setOption(format, "user_agent", mHeaders.get(Utils.USER_AGENT));
mHeaders.remove(Utils.USER_AGENT);
}
IMediaPlayer.OnVideoSizeChangedListener mSizeChangedListener = new IMediaPlayer.OnVideoSizeChangedListener() {

@ -1,11 +1,28 @@
package tv.danmaku.ijk.media.player.ui;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.util.DisplayMetrics;
public class Utils {
public static final String USER_AGENT = "User-Agent";
public static float dp2px(Context context, float dpValue) {
return Math.round((dpValue * context.getResources().getDisplayMetrics().densityDpi) / DisplayMetrics.DENSITY_DEFAULT);
}
public static String getUserAgent(Context context) {
String versionName;
try {
String packageName = context.getPackageName();
PackageInfo info = context.getPackageManager().getPackageInfo(packageName, 0);
versionName = info.versionName;
} catch (PackageManager.NameNotFoundException e) {
versionName = "?";
}
return context.getPackageName() + "/" + versionName + " (Linux;Android " + Build.VERSION.RELEASE + ") " + "IjkPlayerLib/0.8.9";
}
}

Loading…
Cancel
Save