Видео Android MediaPlayer SurfaceView перезапускается при возобновлении работыAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Видео Android MediaPlayer SurfaceView перезапускается при возобновлении работы

Сообщение Гость »

Ниже приведен мой код для воспроизведения видео по 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Видео Android MediaPlayer SurfaceView перезапускается при возобновлении работы
    Гость » » в форуме JAVA
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость
  • Фон SurfaceView, как сделать SurfaceView прозрачным
    Гость » » в форуме Android
    0 Ответы
    79 Просмотры
    Последнее сообщение Гость
  • Случайное исключение IllegalStateException в Android mediaPlayer.prepare или mediaPlayer.setDataSource
    Anonymous » » в форуме Android
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous
  • Невидимый текст при возобновлении работы из стека
    Anonymous » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Невидимый текст при возобновлении работы из стека
    Anonymous » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»