Ниже приведен мой код для воспроизведения видео по URL
import androidx.appcompat.app.AppCompatActivity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
MediaPlayer mp;
SurfaceView sv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = new MediaPlayer();
sv = (SurfaceView) findViewById(R.id.surfaceView);
SurfaceHolder holder = sv.getHolder();
holder.addCallback(new SurfaceHolder.Callback(){
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { }
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mp.setSurface(holder.getSurface());
mp.setDataSource("https://v2.chartboost.com/videoads/636e ... 162356.mp4");
mp.prepare();
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mp.start();
}
});
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) { }
});
}
@Override
protected void onResume() {
super.onResume();
if(mp!= null) {
mp.start();
}
}
@Override
protected void onPause(){
super.onPause();
mp.pause();
mp.setSurface(null);
}
}
Приведенный выше код не дает ожидаемого результата. Когда приложение переходит в фоновый режим и выводится на передний план, видео перезапускается, а не возобновляется. Я пробовал много вещей, но это все равно не работает.
Примечание. Я не могу использовать TextureView из-за требований.
Обновление:Я попробовал метод seekTo, он работает, но на долю секунды экран становится черным
mp.seekTo(currentPosition, SEEK_CLOSEST);
Подробнее здесь: https://stackoverflow.com/questions/787 ... -on-resume
Видео Android MediaPlayer SurfaceView перезапускается при возобновлении работы ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение