Форум программистов, компьютерный форум CyberForum.ru

Как при повороте экрана показывать видео дальше, а не сначала - Android

Восстановить пароль Регистрация
 
Itinerant
16 / 1 / 0
Регистрация: 08.03.2016
Сообщений: 5
03.05.2016, 18:17     Как при повороте экрана показывать видео дальше, а не сначала #1
В общем, когда поворачивается экран видео воспроизводится сначала.
Как я понял, при повороте view элементы с id сохраняются, хотя если эта программа не работает чтото я делаю не так, но вот что не могу понять.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video_view);
 
        pDialog = new ProgressDialog(VideoViewActivity.this);
        pDialog.setTitle("Пожалуйста, подождите");
        pDialog.setMessage("Идёт загрузка видео ...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(false);
        pDialog.show();
 
        //вот одна из моих попыток
        if (savedInstanceState == null){
            videoView = (VideoView) findViewById(R.id.videoView); 
            experiment();            
        }
        else{
            pDialog.dismiss();
            videoView.start();
        }
 
    }
 
    public void experiment() {
        try {
            MediaController mediaController = new MediaController(VideoViewActivity.this);
            mediaController.setAnchorView(videoView);
            Uri video = Uri.parse(videoUrl);
            videoView.setMediaController(mediaController);
            videoView.setVideoURI(video);
        } catch (Exception e) {
            //Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        videoView.requestFocus(0);
        videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                pDialog.dismiss();
                videoView.start();
            }
        });
 
        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                onBackPressed();
            }
        });
    }
И layout
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    tools:context="info.androidhive.description.VideoViewActivity">
 
    <VideoView
        android:id="@+id/videoView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />
</RelativeLayout>
Добавлено через 9 часов 58 минут
Решил задачку. Оказывается все так просто было. Всего лишь добавил вот это
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
int videoPosition = 0;
protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        videoPosition = videoView.getCurrentPosition();
        outState.putInt("Position", videoPosition);
        Log.d("My_Log", "onSaveInstanceState = " + videoPosition);
    }
 
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        videoPosition = savedInstanceState.getInt("Position");
        Log.d("My_Log", "onRestoreInstanceState = " + videoPosition);
    }
И вот это перед стартом
Javascript
1
videoView.seekTo(videoPosition);
Добавлено через 9 часов 27 минут
А вот так еще круче. Видео при повороте заново не загружается.
Это надо прописать в манифесте
XML
1
2
3
4
<activity
            android:name=".VideoViewActivity"
            android:configChanges="orientation|screenSize"
            android:rotation="180.0"/>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2016, 18:17     Как при повороте экрана показывать видео дальше, а не сначала
Посмотрите здесь:

Анимация при повороте экрана - в своем приложении Android
Android Ошибка при повороте экрана
Сохранение объекта при повороте экрана Android
Сохранение цвета Layout при повороте экрана (ПОРТРЕТ->ЛАНДШАФТ) Android
Android Непонятное поведение при повороте экрана
Android Поворот куба сначала вокруг оси y с.к. экрана потом вокруг оси x с.к. экрана
При повороте экрана, сохранить 3 объекта(фрагменты) и потом восстановить их Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
04.05.2016, 17:21     Как при повороте экрана показывать видео дальше, а не сначала #2
Цитата Сообщение от Itinerant Посмотреть сообщение
Решил задачку.
В результате такого решения при повороте экрана данные будут скачиваться заново. Поэтому типичным решением является запрет пересоздания активности при вращении экрана (о чём вы в конце написали).
Seri
-10 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 5
29.06.2016, 12:05     Как при повороте экрана показывать видео дальше, а не сначала #3
Itinerant, здравствуйте, вы не могли бы полностью рабочий код написать?
Itinerant
16 / 1 / 0
Регистрация: 08.03.2016
Сообщений: 5
29.06.2016, 12:14  [ТС]     Как при повороте экрана показывать видео дальше, а не сначала #4
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="rutaia.httpsuperalesha.yakutgo">
 
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/boat"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
 
        <activity
            android:name=".MainActivity"
            android:noHistory="true"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <activity
            android:name=".VideoViewActivity"
            android:configChanges="orientation|screenSize"
            android:rotation="180.0" />
 
        <activity
            android:name=".FullScreenViewActivity"
            android:configChanges="orientation|screenSize"
            android:rotation="180.0" />
    </application>
 
</manifest>
Добавлено через 1 минуту
Для нужного активити пишешь в манифесте android:rotation = "180.0", и нет проблем
Seri
-10 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 5
30.06.2016, 10:08     Как при повороте экрана показывать видео дальше, а не сначала #5
не) не этот способ, а первый) с перерисовкой активити, пожалуйста)

Добавлено через 18 часов 41 минуту
Itinerant, помогите, пожалуйста)
petruchodd
 Аватар для petruchodd
89 / 89 / 8
Регистрация: 23.06.2009
Сообщений: 504
03.07.2016, 22:59     Как при повороте экрана показывать видео дальше, а не сначала #6
Я как то видел и даже в коде видел , люди специально ставили проигрывание видео только в landscape режиме. Врядли это вам поможет, но на заметку можна взять. Тогда при повороте ничего не теряется + в landscape удобней все таки смотреть.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2016, 10:18     Как при повороте экрана показывать видео дальше, а не сначала
Еще ссылки по теме:

Android Запрет выполнения onCreate при повороте экрана
Как сохранить состояние хронометра при повороте экрана? Android
Как сделать так, чтобы при повороте устройства экран оставался вертикальным? Android
Как сохранить все данные при повороте Android
Android Сохранить imageview при повороте экрана

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
04.07.2016, 10:18     Как при повороте экрана показывать видео дальше, а не сначала #7
petruchodd, да, к тому же, случайные повороты экрана и загрузка видео заново только раздражают. Поэтому, конечно, чаще всего смотрят в пейзажной ориентации и её фиксируют.
Yandex
Объявления
04.07.2016, 10:18     Как при повороте экрана показывать видео дальше, а не сначала
Ответ Создать тему
Опции темы

Текущее время: 07:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru