Ошибка ротации приложения видеоплеера в студии AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка ротации приложения видеоплеера в студии Android

Сообщение Anonymous »

Код: Выделить всё

package com.livevideoshare.videosharingapp;

import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.VideoView;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import java.util.Random;

public class LiveVideoActivity extends AppCompatActivity {

private VideoView videoView;
private TextView floatingTextView;
private Handler handler;
private final int INTERVAL = 10000;
int currentPosition ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live_video);

//if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//}

// Get the VideoView reference from XML layout
videoView = findViewById(R.id.videoView);
floatingTextView = findViewById(R.id.floatingTextView);

// Get the video URL from the server (you should replace this with your actual server call)
String videoUrl = "http://kolkatacoders.com/videos/vid1.mp4";

// Set the video URI using the URL obtained from the server
Uri videoUri = Uri.parse(videoUrl);

// Create a MediaController
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);

// Set MediaController for VideoView
videoView.setMediaController(mediaController);

// Set video URI
videoView.setVideoURI(videoUri);
videoView.requestFocus();
if (savedInstanceState != null) {
currentPosition = savedInstanceState.getInt("currentPosition", 0);
}
videoView.seekTo(currentPosition);
// Start playing the video
videoView.start();

///-------------

// Show text at regular intervals
handler = new Handler();
//showFloatingText();

//handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
floatingTextView.setVisibility(View.VISIBLE);
setRandomPosition();

handler.postDelayed(new Runnable() {
@Override
public void run() {
// floatingTextView.setVisibility(View.INVISIBLE);
showFloatingText();
}
}, 2000); // Hide text after 2 seconds
}
}, 10000); // Show text after 30 seconds

}

@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.d("hi soumen","done");
outState.putInt("currentPosition", videoView.getCurrentPosition());
Log.d("hi soumen","videoView.getCurrentPosition()"+videoView.getCurrentPosition());
}

// Set the VideoView to full-screen mode
//setVideoViewFullScreen();
private void showFloatingText() {
floatingTextView.setVisibility(View.VISIBLE);
//setRandomPosition();

// Hide text after 2 seconds
handler.postDelayed(new Runnable() {
@Override
public void run() {
floatingTextView.setVisibility(View.INVISIBLE);
// Show text again after 10 seconds
handler.postDelayed(new Runnable() {
@Override
public void run() {
setRandomPosition();
showFloatingText();
}
}, INTERVAL);
}
}, 2000);  // Hide text after 2 seconds
}
private void setRandomPosition() {
// Get the dimensions of the FrameLayout
int parentWidth = findViewById(R.id.container).getWidth();
int parentHeight = findViewById(R.id.container).getHeight();

// Generate random x and y coordinates
Random random = new Random();
int x = random.nextInt(parentWidth - floatingTextView.getWidth());
int y = random.nextInt(parentHeight - floatingTextView.getHeight());

// Set the TextView's position
floatingTextView.setX(x);
floatingTextView.setY(y);
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
}
это мой код. Две вещи, которые я хочу добавить сюда: одна — это опция вращения, а вторая — после вращения начинать видео с той же позиции, с которой оно запускается.
По сути, я хочу запустить видео, используя URL-адрес. но, как и на YouTube, здесь нет значка вращения. В приложении VideoView всего три значка. Один из них — пауза/воспроизведение, другой — вперед, а третий — обратное слово.

Подробнее здесь: https://stackoverflow.com/questions/784 ... oid-studio
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка разрешения во время регистрации ротации с помощью колбы
    Гость » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Гость
  • Скрипт оболочки для Android TV зависает во время ротации URL-адресов при взаимодействии с пользователем
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Android: SetRetainInstance Bad Practice для ротации экрана?
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я избежать встроенного полноэкранного видеоплеера с HTML5 на iPhone или Android?
    Гость » » в форуме Android
    0 Ответы
    23 Просмотры
    Последнее сообщение Гость
  • Могу ли я избежать встроенного полноэкранного видеоплеера с HTML5 на iPhone или Android?
    Гость » » в форуме Html
    0 Ответы
    46 Просмотры
    Последнее сообщение Гость

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