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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Itinerant
16 / 1 / 0
Регистрация: 08.03.2016
Сообщений: 5
#1

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

03.05.2016, 18:17. Просмотров 455. Ответов 6
Метки нет (Все метки)

В общем, когда поворачивается экран видео воспроизводится сначала.
Как я понял, при повороте 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
в программе запускается хронометр Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer); chronometer.start(); ...

Ошибка при повороте экрана - Программирование Android
Доброго времени суток, пишу по следующему вопросу: Начал изучать программирование под андроид и создал простое приложение побаловаться....

Сохранение объекта при повороте экрана - Программирование Android
здравствуйте,читаю в доках,что метод onRetainNonConfigurationInstance () устарел и надо пользоваться Fragment.setRetainInstance(true) даже...

Сохранить imageview при повороте экрана - Программирование Android
Доброго времени суток. При повороте екрана нужно сохранить imageView. Знаю что нужно использовать onSaveInstanceState() и ...

При повороте экрана выпадает ошибка - Программирование Android
Доброе утро товарищи. Пытаюсь протестить аппку на реальном устройстве. Подключил через шнурок, устанавливает нормально. При запуске...

Непонятное поведение при повороте экрана - Программирование Android
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listpick); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
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
90 / 90 / 8
Регистрация: 23.06.2009
Сообщений: 511
03.07.2016, 22:59 #6
Я как то видел и даже в коде видел , люди специально ставили проигрывание видео только в landscape режиме. Врядли это вам поможет, но на заметку можна взять. Тогда при повороте ничего не теряется + в landscape удобней все таки смотреть.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
04.07.2016, 10:18 #7
petruchodd, да, к тому же, случайные повороты экрана и загрузка видео заново только раздражают. Поэтому, конечно, чаще всего смотрят в пейзажной ориентации и её фиксируют.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2016, 10:18
Привет! Вот еще темы с ответами:

Ошибка при загрузки изображений с карты памяти при повороте экрана - Программирование Android
Здравствуйте! Вопрос в следующем. Загружаю в активити фотки с камеры. Имя файла передаю следующим кодом: Intent captureIntent = new...

Запретить пересоздание Activity при повороте экрана - Программирование Android
В общем, проблема в заголовке. Собственно сам конфиг из манифеста &lt;activity android:name=&quot;.MainActivity&quot; ...

Запрет выполнения onCreate при повороте экрана - Программирование Android
Здравствуйте уважаемые специалисты! У меня такой вопрос: в моей игре есть вопросы и варианты ответов как в игре (кто хочет стать...

Ошибка при повороте экрана в горизонтальное положение - Программирование Android
Здравствуйте, получаю такую ошибку при выходе из приложения в горизонтальном положении в &quot;недавних&quot;Крашится SystemUi ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.07.2016, 10:18
Ответ Создать тему
Опции темы

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