Update dlna - part 1

pull/585/head
FongMi 1 year ago
parent a361c293e5
commit ba2d7c425e
  1. BIN
      app/libs/dlna-dmr-release.aar
  2. 3
      app/src/leanback/java/com/fongmi/android/tv/bean/Func.java
  3. 3
      app/src/leanback/java/com/fongmi/android/tv/receiver/BootReceiver.java
  4. 23
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
  5. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  6. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  7. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java
  8. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  9. BIN
      app/src/leanback/res/drawable-hdpi/ic_home_cast.png
  10. BIN
      app/src/leanback/res/drawable-mdpi/ic_home_cast.png
  11. BIN
      app/src/leanback/res/drawable-xhdpi/ic_home_cast.png
  12. BIN
      app/src/leanback/res/drawable-xxhdpi/ic_home_cast.png
  13. 1
      app/src/leanback/res/values-zh-rCN/strings.xml
  14. 1
      app/src/leanback/res/values-zh-rTW/strings.xml
  15. 1
      app/src/leanback/res/values/strings.xml
  16. 4
      app/src/main/java/com/fongmi/android/tv/player/Players.java

Binary file not shown.

@ -46,6 +46,9 @@ public class Func {
case R.string.home_push:
this.drawable = R.drawable.ic_home_push;
break;
case R.string.home_cast:
this.drawable = R.drawable.ic_home_cast;
break;
case R.string.home_search:
this.drawable = R.drawable.ic_home_search;
break;

@ -11,9 +11,7 @@ import android.os.Build;
import androidx.annotation.NonNull;
import com.android.cast.dlna.dmr.DLNARendererService;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.config.LiveConfig;
public class BootReceiver extends BroadcastReceiver {
@ -45,7 +43,6 @@ public class BootReceiver extends BroadcastReceiver {
private void doJob() {
LiveConfig.get().init().load();
DLNARendererService.Companion.start(App.get(), R.drawable.ic_logo);
((ConnectivityManager) App.get().getSystemService(Context.CONNECTIVITY_SERVICE)).unregisterNetworkCallback(this);
}
}

@ -1,6 +1,7 @@
package com.fongmi.android.tv.ui.activity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@ -55,7 +56,6 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
private CustomKeyDownCast mKeyDown;
private RenderState mState;
private CastAction mAction;
private DIDLParser mParser;
private Players mPlayers;
private Runnable mR1;
private Runnable mR2;
@ -64,6 +64,10 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
private long duration;
private int scale;
public static void start(Activity activity) {
activity.startActivity(new Intent(activity, CastActivity.class));
}
@Override
protected ViewBinding getBinding() {
return mBinding = ActivityCastBinding.inflate(getLayoutInflater());
@ -82,11 +86,9 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
mClock = Clock.create(mBinding.widget.clock);
mKeyDown = CustomKeyDownCast.create(this);
mPlayers = Players.create(this);
mParser = new DIDLParser();
mR1 = this::hideControl;
mR2 = this::setTraffic;
setVideoView();
checkAction();
}
@Override
@ -111,7 +113,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
private String getName() {
try {
return mParser.parse(mAction.getCurrentURIMetaData()).getItems().get(0).getId();
return new DIDLParser().parse(mAction.getCurrentURIMetaData()).getItems().get(0).getId();
} catch (Exception e) {
return mAction.getCurrentURI();
}
@ -176,6 +178,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
private void onReset() {
position = duration = C.TIME_UNSET;
if (mPlayers.isEmpty()) return;
start();
}
@ -278,7 +281,6 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
public void onPlayerEvent(PlayerEvent event) {
switch (event.getState()) {
case PlayerEvent.PREPARE:
mPlayers.seekTo(position);
setState(RenderState.PREPARING);
break;
case Player.STATE_IDLE:
@ -346,8 +348,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
}
private void onPlay() {
if (!mPlayers.isEmpty() && mPlayers.isIdle()) mPlayers.prepare();
if (mPlayers.isEnded()) mPlayers.seekTo(C.TIME_UNSET);
if (mPlayers.isEmpty()) return;
setState(RenderState.PLAYING);
mPlayers.play();
hideCenter();
@ -360,7 +361,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
}
private void setState(RenderState state) {
if (mService != null) mService.notifyAvTransportLastChange(this.mState = state);
if (mService != null) mService.notifyAvTransportLastChange(mState = state);
}
@NonNull
@ -387,7 +388,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
(mService = ((RendererServiceBinder) service).getService()).bindRealPlayer(this);
mService = ((RendererServiceBinder) service).getService();
}
@Override
@ -434,15 +435,17 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
@Override
public void onSeeking(int time) {
if (mPlayers.isEmpty()) return;
mBinding.widget.center.setVisibility(View.VISIBLE);
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(time));
mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind);
mBinding.widget.center.setVisibility(View.VISIBLE);
hideProgress();
}
@Override
public void onSeekTo(int time) {
if (mPlayers.isEmpty()) return;
mKeyDown.resetTime();
mPlayers.seekTo(time);
showProgress();

@ -15,7 +15,6 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewbinding.ViewBinding;
import com.android.cast.dlna.dmr.DLNARendererService;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
@ -95,7 +94,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
protected void initView() {
DLNARendererService.Companion.start(this, R.drawable.ic_logo);
mClock = Clock.create(mBinding.clock).format("MM/dd HH:mm:ss");
mBinding.progressLayout.showProgress();
Updater.get().release().start(this);
@ -235,6 +233,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
adapter.add(Func.create(R.string.home_search));
adapter.add(Func.create(R.string.home_keep));
adapter.add(Func.create(R.string.home_push));
adapter.add(Func.create(R.string.home_cast));
adapter.add(Func.create(R.string.home_setting));
return new ListRow(adapter);
}
@ -384,6 +383,9 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
case R.string.home_push:
PushActivity.start(this);
break;
case R.string.home_cast:
CastActivity.start(this);
break;
case R.string.home_setting:
SettingActivity.start(this);
break;

@ -868,10 +868,10 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
public void onSeeking(int time) {
if (mPlayers.isLive()) return;
mBinding.widget.center.setVisibility(View.VISIBLE);
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(time));
mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind);
mBinding.widget.center.setVisibility(View.VISIBLE);
hideProgress();
}

@ -26,7 +26,7 @@ public class PushActivity extends BaseActivity {
}
public static void start(Activity activity, int tab) {
Intent intent = new Intent(new Intent(activity, PushActivity.class));
Intent intent = new Intent(activity, PushActivity.class);
intent.putExtra("tab", tab);
activity.startActivity(intent);
}

@ -1311,10 +1311,10 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@Override
public void onSeeking(int time) {
mBinding.widget.center.setVisibility(View.VISIBLE);
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(time));
mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind);
mBinding.widget.center.setVisibility(View.VISIBLE);
hideProgress();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

@ -6,6 +6,7 @@
<string name="home_search">搜索</string>
<string name="home_keep">收藏</string>
<string name="home_push">推送</string>
<string name="home_cast">投屏</string>
<string name="home_setting">设置</string>
<string name="home_history">最近观看</string>
<string name="home_recommend">更新推荐</string>

@ -6,6 +6,7 @@
<string name="home_search">搜尋</string>
<string name="home_keep">收藏</string>
<string name="home_push">推送</string>
<string name="home_cast">投屏</string>
<string name="home_setting">設定</string>
<string name="home_history">最近觀看</string>
<string name="home_recommend">更新推薦</string>

@ -6,6 +6,7 @@
<string name="home_search">Search</string>
<string name="home_keep">Keep</string>
<string name="home_push">Push</string>
<string name="home_cast">Cast</string>
<string name="home_setting">Setting</string>
<string name="home_history">History</string>
<string name="home_recommend">Recommend</string>

@ -40,7 +40,6 @@ import com.fongmi.android.tv.bean.Track;
import com.fongmi.android.tv.event.ActionEvent;
import com.fongmi.android.tv.event.ErrorEvent;
import com.fongmi.android.tv.event.PlayerEvent;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.impl.ParseCallback;
import com.fongmi.android.tv.impl.SessionCallback;
import com.fongmi.android.tv.player.exo.ExoUtil;
@ -389,8 +388,7 @@ public class Players implements Player.Listener, ParseCallback {
}
private void setMediaItem() {
if (url == null) RefreshEvent.player();
else setMediaItem(headers, url, format, drm, subs, Constant.TIMEOUT_PLAY);
if (url != null) setMediaItem(headers, url, format, drm, subs, Constant.TIMEOUT_PLAY);
}
public void setMediaItem(String url) {

Loading…
Cancel
Save