Вопросы с тегами [android-videoview]

1

голосов
1

ответ
580

Просмотры

VideoView останавливает музыкальный проигрыватель

Ну я сделал приложение в Android Studio и это приложение имеет видео, работающее в фоновом режиме для входа в систему. Видео в VideoView и работает отлично, но когда я тестировал его в своем телефоне, когда я играл музыку, которую я заметил, что он делает паузу музыкального проигрывателя. Как я могу решить эту проблему? защищенный аннулируются OnCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_login); VID = findViewById (R.id.videoView2); Uri Uri = Uri.parse ( "android.resource: //" + getPackageName () + "/" + R.raw.video); vid.setVideoURI (URI); vid.start (); vid.setOnPreparedListener (новый MediaPlayer.OnPreparedListener () {@Override общественных недействительный onPrepared (MediaPlayer т.пл) {mp.setLooping (истина);}}); usuRut = findViewById (R.id.usuRut); girPass = findViewById (R.id.usuPass); girId = findViewById (R.id.girId); } Здесь я запускаю видео.
Asez97
1

голосов
0

ответ
41

Просмотры

VideoView купирован воспроизведение видео после нажатия назад и домой кнопки

Я пытаюсь играть видео в VideoView, видео игра останавливается, когда я нажимаю назад или кнопку домой. Мой код в OnCreate () VideoView VideoView = findViewById (R.id.videoview); Uri Uri = android.net.Uri.parse ( "xxxx.xxxx"); videoview.setVideoURI (URI); videoview.start ();
Dheerubhai Bansal
1

голосов
1

ответ
114

Просмотры

Android-студия VideoView прозрачной?

Новое в Android Studio и положить видео в приложение, которое работает так же, как я хотел, за исключением, когда активность загружается и видео ждет, чтобы играть у меня есть черный патч, можно удалить это так фон деятельности показано, или если не прозрачны, то можно использовать изображение? Я попробовал метод seekTo, но по какой-то причине не работает. Кода с использованием Java общественной недействительным onButtonClick (View V) {VideoView VideoView = findViewById (R.id.videoview); Uri Uri = Uri.parse ( "android.resource: //" + getPackageName () + "/" + R.raw.kmeet); videoview.setVideoURI (URI); videoview.seekTo (100); videoview.start (); Что у меня не так? Для того, чтобы помочь - это то, что деятельность выглядит как только открывается, Что я получаю Это то, что я хотел бы, чтобы выглядеть, когда деятельность открывает Хотела
1

голосов
1

ответ
30

Просмотры

Как я могу использовать, если заявление в просмотре видео, если видео не работает

в моем Java коде, у меня есть VideoView и им разбор видео к нему в URI Из интернета (я установить связь видео), а через 6 часов, они изменили ссылку видео, и если старая ссылка видео имеет еще в он дает URI мне сообщение «Невозможно воспроизвести это видео», но теперь хо я могу использовать, если заявление и я установить внутри него почти 7 ссылки видео и если первое звено видео преобразуется в не работает .. он автоматически выбрал второе звено видео. это невозможно? мой код: Uri Uri = Uri.parse ( "myVideoLink"); videoView.setVideoURI (URI); videoView.setMediaController (новый MediaController (это)); videoView.requestFocus (); videoView.start ();
1

голосов
0

ответ
21

Просмотры

Черный фон на VideoView Android

У меня есть VideoView, который отображает горизонтальным. Видео, которое я показываю в вертикальном положении. У меня есть пустое пространство в моем ViewView вне моего реального видео. Видео показывает, как это. Красный прямоугольник мое видео, но мой VideoView охватывает ширину все экрана. Я хочу изменить серый цвет на черный цвет, но это не работает. Я установил черный цвет, и я до сих пор имеющие серый цвет. Это происходит только с черным, если я пытаюсь с зеленым, желтым или красным, цвет заменяется совершенно. Это, как я использую мое мнение. В моем классе, я устанавливаю это атрибуты videoView.setVideoURI (Uri); videoView.requestFocus (); videoView.start (); videoView.setBackgroundColor (Color.TRANSPARENT); Есть ли способ, чтобы установить черный фон?
Dani Garcia
1

голосов
2

ответ
32

Просмотры

Android, VideoView не может открыть это видео онлайна видео

Я использовал VideoView играть MP4 файл из Интернета, но он не может играть это видео все время. Это мой код: Uri Uri = Uri.parse ( "http://vfx.mtime.cn/Video/2019/02/08/mp4/190208204943376259.mp4"); videoView.setVideoURI (URI); videoView.setOnPreparedListener (createOnPreparedListener ()); частный MediaPlayer.OnPreparedListener createOnPreparedListener () {возвратить новый MediaPlayer.OnPreparedListener () {@Override общественных недействительный onPrepared (MediaPlayer тр) {mp.start (); }}; } Это может хорошо работать в моем эмуляторе, но не успех в моем устройстве Android. И мой targetSdkVersion и compileSdkVersion 28, мой андроид API устройство андроид 28, мой эмулятор API 23 и LogCat следующим образом: 2019-03-15 09: 11: 49,867 26152-26152 / com.uitest Вт / com.uitest: информация JIT профиля не будет записано: файл профиля не завершает работу. 2019-03-15 09: 11: 49,873 26152-26152 / com.uitest I / болтлив: UID = 10049 (com.uitest) идентичных 10 строк 2019-03-15 09: 11: 49,873 26152-26152 / com.uitest W /com.uitest: информация о профиле JIT не будет записано: файл профиля не завершает работу. 2019-03-15 09: 11: 49,915 26152-26152 / com.uitest I / InstantRun: начиная сервер мгновенного запуска: это главный процесс 2019-03-15 09: 11: 50,088 26152-26152 / com.uitest Д / OpenGLRenderer: Skia GL Pipeline 2019-03-15 09: 11: 50,168 26152-26170 / com.uitest I / configStore: андроида :: аппаратная :: configstore :: V1_0 :: ISurfaceFlingerConfigs :: hasWideColorDisplay извлекаться: 0 2019-03-15 09: 11: 50,168 26152-26170 / com.uitest I / configStore: андроид :: аппаратной :: configstore :: V1_0 :: ISurfaceFlingerConfigs :: hasHDRDisplay извлекаться: 0 2019-03-15 09: 11: 50,169 26152-26170 / ком.
Sean
1

голосов
0

ответ
45

Просмотры

MediaHTTPConnection: readAt 1343667/32768 => java.net.ProtocolException

Я получаю java.net.ProtocolException для некоторых видео. Это как прохождение URL в VideoView. Кто-нибудь сталкиваться с этим раньше? videoview.setVideoURI (videourl);
Manu Ram V
1

голосов
2

ответ
2.4k

Просмотры

Problems while showing a full screen videoView & changing orientation

У меня есть активность, которая показывает полный экран VideoView а (при этом поддерживать соотношение сторон). Он отлично работает на Android 2.3.7, но у меня возникают какие-то странные проблемы на Android 4 (и, вероятно, 3, я еще не проверял): По какой-то причине, если я установить тему, чтобы быть в полноэкранном режиме, без заголовка (или панель действий), я получаю голубой-иш (или беловатый?) градиент ниже VideoView, как показано здесь: Соответствующий макет здесь: редактировать: на андроид 3, это не происходит. Когда я изменить ориентацию с книжной на альбомную, она повторно загружает все видео с самого начала. На Android 2.3.7, она по-прежнему без каких-либо задержек, как будто ничего не изменилось. Соответствующая декларация часть здесь: Обратите внимание, что на Android 3, вращая таблетки ничего не делает, так что нет никаких изменений ориентации. Как мне справиться с этими проблемами? API демки Дон» т, кажется, обновлены для обработки этих случаев. Мой проект был протестирован на: Nexus One (Android 2.3.7), Xoom (Android 3), Galaxy S3 (Android 4). Для того, чтобы исправить номер 1, я просто изменил тему, которая не имеет никакого фона. Странно, что именно таким образом на устройстве. Интересно, если это так и на других Android 4 устройств. Для того, чтобы создать тему, я создал файл «theme.xml» в «/ значениях / Рез» папке, и написал там: @null Конечно, я также обновил манифест использовать новую тему. s, как это на других Android 4 устройств. Для того, чтобы создать тему, я создал файл «theme.xml» в «/ значениях / Рез» папке, и написал там: @null Конечно, я также обновил манифест использовать новую тему. s, как это на других Android 4 устройств. Для того, чтобы создать тему, я создал файл «theme.xml» в «/ значениях / Рез» папке, и написал там: @null Конечно, я также обновил манифест использовать новую тему.
1

голосов
1

ответ
601

Просмотры

не VideoView работает для видео с вращением на телефонах LG Android

С LG MS840, если я беру видео в ориентации Lanscape, а затем отобразить его в VideoView, он выглядит так же к тому, что он будет использоваться. Однако, если взять видео в Portait ориентации, а затем отобразить его в VideoView, ширина и высота видео будут обменены, и изображение будет масштабироваться, чтобы соответствовать этому выгружен размеру. Например, если изображение в видео, которое я принял это: ------- | | | | | | | | | BC | ------- Изображение в записанном файле все еще: ------------ | AC | | | | B | ------------ Так, если размер видео сообщается вращение было рассмотрено, что я видел это: ------- | AC | | | | | | | | B | ------- Любой ключ, как это можно исправить?
tactoth
1

голосов
4

ответ
2.8k

Просмотры

retriever.getFrameAtTime не является точным, как я могу получить скриншот видео?

Это функция, я использую: общественный Bitmap getVideoFrame (String FD, долгое время) {MediaMetadataRetriever ретривера = новый MediaMetadataRetriever (); попробуйте {retriever.setDataSource (FD); вернуться retriever.getFrameAtTime (время * 1000, MediaMetadataRetriever.OPTION_CLOSEST); } Задвижка (IllegalArgumentException ех) {ex.printStackTrace (); } Задвижка (RuntimeException ех) {ex.printStackTrace (); } Наконец {попробовать {retriever.release (); } Задвижка (RuntimeException ех) {}} возвращение нуль; }, Где: FD это путь времени видео = videoview.getCurrentPosition (); Проблема заключается в том, что эта функция не получает точную кадр мне нужно получить. на более длинном видео (20 мин) будет более точным, чем в коротком видео (10-20 секунд). Есть ли что-то я отсутствую, если нет,
rosu alin
1

голосов
1

ответ
541

Просмотры

Android не VideoView работает

Я хочу, чтобы написать код, который будет играть видео, когда кнопка нажата. Я не могу получить видео для отображения. При нажатии на кнопку воспроизведения, эмулятор перестает работать. общественный класс видео расширяет активность {личного статический окончательный Струнный MOVIE_URL = «http://www.youtube.com/watch?v=XtYzTxydKmk&list=PL33CD04942E3B59AF&index=3»; @Override защищены недействительный OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.video_layout); VideoView видео = (VideoView) findViewById (R.id.videoHK); Ури HKvideo = Uri.parse (MOVIE_URL); video.setMediaController (новый MediaController (это)); video.setVideoURI (HKvideo); video.start (); video.requestFocus (); } Для кнопки у меня Кнопка videoButton = (кнопка) findViewById (R.id.btnVideo); videoButton.
littledevils326
1

голосов
2

ответ
1.7k

Просмотры

Как играть в видео с Time произвольного в Android?

Я хочу играть видео в произвольный момент времени для VideoView в Android _player.setVideoURI (Uri.parse (URI)); MediaController тс = новый MediaController (это); _player.setMediaController (тс); _player.start (); Теперь я хочу установить время: 10:20 искать файл и воспроизвести его (10 мин и 20 сек)
1

голосов
1

ответ
733

Просмотры

Как сделать кнопку видимой в виде видео метода «OnPreparedListener»

У меня есть кнопка воспроизведения и VideoView в моей деятельности. В XML, я сделал кнопку невидимым. В Java коде я пытаюсь сделать его видимым. В методе OnPreparedListener Просмотр видео, я пытаюсь сделать его видимым. но его не становится видимым. Ниже мой код. vvVideos.setOnPreparedListener (новый OnPreparedListener () {общественного недействительный onPrepared (т.пл. медиаплеер) {btnPlay.setVisibility (Button.VISIBLE);}}); XML File ::
Vignesh
1

голосов
1

ответ
1.7k

Просмотры

Video View setVideoUri fail in Android

У меня есть VideoView, который должен начать, когда пользователь нажимает на «кнопку воспроизведения», но он не работает. После некоторой отладки и некоторых испытаний, я вижу, что если я начну видео на начало в OnCreate (), он отлично работает (он устанавливает URI). Но когда я пытаюсь использовать функцию setVideoUri внутри кнопки onClickListener, он просто не работает (это, как я не называю). Там нет ошибок, или аварии, просто ничего не происходит. Есть идеи? ImageView play2; VideoView vView; Строка video_url = «URL из видео»; play2.setOnClickListener (новый View.OnClickListener () {общественного недействительными OnClick (Просмотр вид) {play.setVisibility (-1); publicidad.setVisibility (-1); principal.setVisibility (-1); vView.setVisibility (1); play2.setVisibility (-1); vView. requestFocus (); Строка а = urls_fotos [posicion] [0]; vView.setVideoURI (Uri.parse (video_url)); vView.setMediaController (новый MediaController (CTX)); vView.start (); TextView ERE = (TextView) findViewById (R.id.titulo); ere.setVisibility (-1); ere.setVisibility (1); }});
D4rWiNS
1

голосов
1

ответ
2.7k

Просмотры

Пользовательские VideoView для отправки пользовательских заголовков

Мне нужно отправить пользовательские заголовки с VideoView. Существует общественная пустота setVideoURI (Uri Uri, карта заголовки) функция, но она не поддерживает старые версии андроида. Мне нужно, чтобы скомпилировать его с API версии 8. Тогда я нашел нить на здесь: https://stackoverflow.com/a/13137948/1859242 Я скачал http://grepcode.com/file_/repository.grepcode.com/ Java / внутр / com.google.android / Android / 4.2.2_r1 / Android / СМИ / Metadata.java /? v = источник и http://grepcode.com/file_/repository.grepcode.com/java/ext/com .google.android / Android / 4.2.2_r1 / Android / виджет / VideoView.java /? v = источник и поместил их внутри моей исходной папки. Но я получаю четыре ошибки: 1- mContext не может быть решен 2- METADATA_ALL не может быть разрешен или не является поле 3- BYPASS_METADATA_FILTER не может быть разрешен или не является поле Call-4- требуется уровень API 14 (ток мин 8): android.view. accessibility.AccessibilityNodeInfo # setClassName Спасибо всем. Изменить: Я сделал некоторые изменения на файл VideoView, каждая вещь в порядке, за исключением из ошибки литья исключения составляет: E / AndroidRuntime (1955): java.lang.RuntimeException: Невозможно начать деятельность ComponentInfo {com.myapp.mylib / ком .myapp.mylib.VideoPlayerActivity}: java.lang.ClassCastException: android.widget.VideoView не может быть приведен к com.myapp.mylib.libs.VideoView Вот новый источник код: com.myapp.mylib.libs пакет; / * * Copyright (C) 2006 Проект Android Open Source * Лицензия под лицензией Apache, версия 2.0 ( "Лицензия"); * Вы не можете использовать этот файл только в соответствии с лицензией. * Вы можете получить копию лицензии на * http://www.apache.org/licenses/LICENSE-2.0 * * Если не предусмотрено действующим законодательством или согласованные в письменной форме, Программное обеспечение * распространяется под лицензией распространяется на «КАК ЕСТЬ», * БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, либо явных или подразумеваемых. * См лицензии для конкретных языковых разрешений и * ограничений по лицензии. * / Импорт android.annotation.SuppressLint; импорт android.app.AlertDialog; импорт android.content.Context; импорт android.content.DialogInterface; импорт android.content.Intent; импорт android.content.res.Resources; импорт android.media.AudioManager; импорт android.media.MediaPlayer; импорт android.media.MediaPlayer.OnCompletionListener; импорт android.media.MediaPlayer.OnErrorListener; импорт android.media.MediaPlayer.OnInfoListener; импорт android.net.Uri; импорт android.util.AttributeSet; импорт android.util.Log; импорт android.view.KeyEvent; импорт android.view.MotionEvent; импорт android.view.SurfaceHolder; импорт android.view.SurfaceView; импорт android.view.View; импорт android.view.accessibility.AccessibilityEvent; импорт android.view.accessibility.AccessibilityNodeInfo; импорт android.widget.MediaController; импорт android.widget.MediaController.MediaPlayerControl; импорт java.io.IOException; импорт java.util.Map; импорт com.myapp.mylib.R; / ** * Отображение видео файла. Класс VideoView * может загружать изображения из различных источников (например, ресурсов или контента * провайдеры), заботится о вычислении его измерения из видео, так что * он может быть использован в любом менеджере компоновки, и предоставляют различные варианты отображения *, такие как масштабирование и тонировка. * / Общественный класс VideoView расширяет SurfaceView реализует MediaPlayerControl {частного Строки TAG = "VideoView"; // устанавливаемого клиента частный Uri Мури; частные mHeaders Карты; частный контекст mContext; // Добавлены метаданные значение публичного статического окончательного логического METADATA_ALL = ложь; общественности статическое окончательное булево BYPASS_METADATA_FILTER = ложь; // все возможное внутренние состояния частное статическое окончательный ИНТ STATE_ERROR = -1; частное статическое окончательный ИНТ STATE_IDLE = 0; частный статический окончательный ИНТ STATE_PREPARING = 1; частный статический окончательный ИНТ STATE_PREPARED = 2; частный статический окончательный ИНТ STATE_PLAYING = 3; частный статический окончательный ИНТ STATE_PAUSED = 4; частный статический окончательный ИНТ STATE_PLAYBACK_COMPLETED = 5; // mCurrentState является текущим состоянием А VideoView объекта. // mTargetState это состояние, что метод вызывающий абонент намерен достичь. // Например, независимо от текущего состояния объекта VideoView, в // вызова пауза () намерено довести объект до заданного состояния // из STATE_PAUSED. частное ИНТ mCurrentState = STATE_IDLE; частное ИНТ mTargetState = STATE_IDLE; // Весь материал нам нужно для игры и показывая видео частное SurfaceHolder mSurfaceHolder = NULL; частный MediaPlayer mMediaPlayer = NULL; частное ИНТ mVideoWidth; частное ИНТ mVideoHeight; частное ИНТ mSurfaceWidth; частное ИНТ mSurfaceHeight; частный MediaController mMediaController; частный OnCompletionListener mOnCompletionListener; частный MediaPlayer.OnPreparedListener mOnPreparedListener; частное ИНТ mCurrentBufferPercentage; частный OnErrorListener mOnErrorListener; частный OnInfoListener mOnInfoListener; частное ИНТ mSeekWhenPrepared; // запись позиции искать при подготовке частного булева mCanPause; частное логическое mCanSeekBack; частное логическое mCanSeekForward; общественный VideoView (контекст Context) {супер (контекст); initVideoView (); mContext = контекст; } Общественных VideoView (контекст Контекст, AttributeSet ATTRS) {это (контекст, ATTRS, 0); mContext = контекст; initVideoView (); } общественного VideoView (контекст Контекст, AttributeSet ATTRS, внутр defStyle) {супер (контекст, ATTRS, defStyle); mContext = контекст; initVideoView (); } @Override защищен недействительным onMeasure (интермедиат widthMeasureSpec, внутр heightMeasureSpec) {// Журнал. я ( "@@@@", "onMeasure"); INT ширина = getDefaultSize (mVideoWidth, widthMeasureSpec); INT высота = getDefaultSize (mVideoHeight, heightMeasureSpec); если (mVideoWidth> 0 && mVideoHeight> 0) {если (mVideoWidth * высота> ширина * mVideoHeight) {//Log.i("@@@», "изображение слишком высокий, коррекции"); высота = ширина * mVideoHeight / mVideoWidth; } Иначе, если (mVideoWidth * высота <ширина * mVideoHeight) {//Log.i("@@@», "изображение слишком широк, исправление"); ширина = высота * mVideoWidth / mVideoHeight; } Еще {//Log.i("@@@», "соотношение сторон является правильным:" + // ширина + "/" + высота + "=" + // mVideoWidth + "/" + mVideoHeight); }} //Log.i("@@@@@@@@@@», "размер установка:" + ширина + 'х' + высота); setMeasuredDimension (ширина, высота); } @Override общественный недействительный onInitializeAccessibilityEvent (AccessibilityEvent событие) {super.onInitializeAccessibilityEvent (событие); event.setClassName (VideoView.class.getName ()); } @SuppressLint ( "NewApi") @Override общественной недействительный onInitializeAccessibilityNodeInfo (AccessibilityNodeInfo информация) {super.onInitializeAccessibilityNodeInfo (информация); info.setClassName (VideoView.class.getName ()); } Общественного INT resolveAdjustedSize (INT DesiredSize, Int measureSpec) {INT результат = DesiredSize; INT specMode = MeasureSpec.getMode (measureSpec); INT specSize = MeasureSpec.getSize (measureSpec); переключатель (specMode) {случай MeasureSpec.UNSPECIFIED: / * Родитель говорит, что мы можем быть столь же большим, как мы хотим. Только не больше *, чем максимальный размер налагаемого на себя. * / Результат = DesiredSize; перерыв; случай MeasureSpec.AT_MOST: / * Родитель говорит, что мы можем быть столь же большим, как мы хотим, до specSize. * Не быть больше, чем specSize, и не будет больше, чем * максимального размера наложенного на себя. * / Результат = Math.min (DesiredSize, specSize); перерыв; случай MeasureSpec.EXACTLY: // Нет выбора. Делайте то, что нам говорят. Результат = specSize; перерыв; } Возвращаемый результат; } Частная пустота initVideoView () {mVideoWidth = 0; mVideoHeight = 0; . GetHolder () addCallback (mSHCallback); getHolder. () SetType (SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); setFocusable (истина); setFocusableInTouchMode (истина); requestFocus (); mCurrentState = STATE_IDLE; mTargetState = STATE_IDLE; } Общественного недействительными setVideoPath (String путь) {setVideoURI (Uri.parse (путь)); } Общественного недействительный setVideoURI (Uri Uri) {setVideoURI (URI, NULL); } / ** * @hide * / общественного недействительный setVideoURI (Uri Uri, заголовки Карты) {Мури = URI; mHeaders = заголовки; mSeekWhenPrepared = 0; открыть видео(); requestLayout (); недействительными (); } Общественного недействительными stopPlayback () {если (mMediaPlayer! = NULL) {mMediaPlayer.stop (); mMediaPlayer.release (); mMediaPlayer = NULL; mCurrentState = STATE_IDLE; mTargetState = STATE_IDLE; }} Частная пустота openVideo () {если (Мури == NULL || mSurfaceHolder == NULL) {// не готов к воспроизведению только еще, попробую еще раз позже вернуться; } // Сообщает службу воспроизведения музыки для паузы // TODO: эти константы должны быть опубликованы где-то в рамках. Намерение я = новое Намерение ( "com.android.music.musicservicecommand"); ( "Команда", "пауза") i.putExtra; mContext.sendBroadcast (я); // мы не должны очистить целевое состояние, потому что кто-то может иметь // называемый старт (), предварительно освободить (ложь); попробуйте {mMediaPlayer = новый MediaPlayer (); mMediaPlayer.setOnPreparedListener (mPreparedListener); mMediaPlayer.setOnVideoSizeChangedListener (mSizeChangedListener); mMediaPlayer.setOnCompletionListener (mCompletionListener); mMediaPlayer.setOnErrorListener (mErrorListener); mMediaPlayer.setOnInfoListener (mOnInfoListener); mMediaPlayer.setOnBufferingUpdateListener (mBufferingUpdateListener); mCurrentBufferPercentage = 0; mMediaPlayer.setDataSource (mContext, MURI, mHeaders); mMediaPlayer.setDisplay (mSurfaceHolder); mMediaPlayer.setAudioStreamType (AudioManager.STREAM_MUSIC); mMediaPlayer.setScreenOnWhilePlaying (истина); mMediaPlayer.prepareAsync (); // мы не ставим целевого состояния здесь либо, но сохраняют // целевое состояние, что там было раньше. mCurrentState = STATE_PREPARING; attachMediaController (); } Поймать (IOException ех) {Log.w (TAG, "Невозможно открыть содержание:" + MURI, ех); mCurrentState = STATE_ERROR; mTargetState = STATE_ERROR; mErrorListener.onError (mMediaPlayer, MediaPlayer.MEDIA_ERROR_UNKNOWN, 0); вернуть; } Задвижка (IllegalArgumentException ех) {Log.w (TAG, "Невозможно открыть содержание:" + MURI, ех); mCurrentState = STATE_ERROR; mTargetState = STATE_ERROR; mErrorListener.onError (mMediaPlayer, MediaPlayer.MEDIA_ERROR_UNKNOWN, 0); вернуть; }} Общественного недействительными setMediaController (MediaController контроллер) {если (mMediaController! = NULL) {mMediaController.hide (); } MMediaController = контроллер; attachMediaController (); } Частная пустота attachMediaController () {если (mMediaPlayer = NULL && mMediaController! = NULL) {mMediaController.setMediaPlayer (это); Просмотр anchorView = this.getParent () InstanceOf View? (View) this.getParent (): это; mMediaController.setAnchorView (anchorView); mMediaController.setEnabled (isInPlaybackState ()); }} MediaPlayer.OnVideoSizeChangedListener mSizeChangedListener = новый MediaPlayer.OnVideoSizeChangedListener () {общественного недействительными onVideoSizeChanged (MediaPlayer т.пл, ширина INT, INT высота) {mVideoWidth = mp.getVideoWidth (); mVideoHeight = mp.getVideoHeight (); если (mVideoWidth = 0 && mVideoHeight = 0!) {getHolder () setFixedSize (mVideoWidth, mVideoHeight). requestLayout (); }}}; MediaPlayer.OnPreparedListener mPreparedListener = новый MediaPlayer.OnPreparedListener () {общественного недействительными onPrepared (MediaPlayer т.пл) {mCurrentState = STATE_PREPARED; // Получить возможности плеера для этого потока данных // Metadata = mp.getMetadata (METADATA_ALL, // BYPASS_METADATA_FILTER); Метаданные данные = новые метаданные (); если (данные! = NULL) {mCanPause =! data.has (метаданных. PAUSE_AVAILABLE) || data.getBoolean (Metadata.PAUSE_AVAILABLE); mCanSeekBack =! data.has (Metadata.SEEK_BACKWARD_AVAILABLE) || data.getBoolean (Metadata.SEEK_BACKWARD_AVAILABLE); mCanSeekForward =! data.has (Metadata.SEEK_FORWARD_AVAILABLE) || data.getBoolean (Metadata.SEEK_FORWARD_AVAILABLE); } Еще {mCanPause = mCanSeekBack = mCanSeekForward = TRUE; } Если (mOnPreparedListener! = NULL) {mOnPreparedListener.onPrepared (mMediaPlayer); } Если (mMediaController! = NULL) {mMediaController.setEnabled (истина); } MVideoWidth = mp.getVideoWidth (); mVideoHeight = mp.getVideoHeight (); INT seekToPosition = mSeekWhenPrepared; // mSeekWhenPrepared может быть изменен после того, как seekTo () вызова, если {seekTo (seekToPosition) (seekToPosition = 0!); } Если {//Log.i("@@@@», "размер видео (mVideoWidth = 0 && mVideoHeight = 0!):" + MVideoWidth + "/" + mVideoHeight); . GetHolder () setFixedSize (mVideoWidth, mVideoHeight); если (mSurfaceWidth == mVideoWidth && mSurfaceHeight == mVideoHeight) {// Мы не реально изменить размер (это было уже в размере // нам нужно), поэтому мы не получите «поверхность изменилось» обратный вызов, так // начать видео здесь, а не в обратном вызове. если (mTargetState == STATE_PLAYING) {Start (); если (! mMediaController = NULL) {mMediaController.show (); }} Еще если (! IsPlaying () && (seekToPosition! = 0 || getCurrentPosition ()> 0)) {если (mMediaController! = NULL) {// Отображение элементов управления медиа, когда мы паузу в видео и сделать " эм пристают. mMediaController.show (0); }}}} Еще {// Мы не знаем размер видео пока нет, но в любом случае следует начинать. // Размер видео может быть сообщен нам позже. если (mTargetState == STATE_PLAYING) {Start (); }}}}; частный MediaPlayer.OnCompletionListener mCompletionListener = новый MediaPlayer.OnCompletionListener () {общественного недействительный onCompletion (MediaPlayer тр) {mCurrentState = STATE_PLAYBACK_COMPLETED; mTargetState = STATE_PLAYBACK_COMPLETED; если (! mMediaController = NULL) {mMediaController.hide (); } Если (mOnCompletionListener! = NULL) {mOnCompletionListener.onCompletion (mMediaPlayer); }}}; частный MediaPlayer.OnErrorListener mErrorListener = новый MediaPlayer.OnErrorListener () {общественного логический OnError (MediaPlayer тр, внутр framework_err, внутр impl_err) {Log.d (TAG, "Ошибка:" + framework_err + "" + impl_err); mCurrentState = STATE_ERROR; mTargetState = STATE_ERROR; если (! mMediaController = NULL) {mMediaController.hide (); } / * Если обработчик ошибок был поставлен, использовать его и закончить. * / Если (! MOnErrorListener = NULL) {если (mOnErrorListener.onError (mMediaPlayer, framework_err, impl_err)) {возвращает истину; }} / * В противном случае, всплывающее диалоговое окно с сообщением об ошибке, так что пользователь знает, что * что-то плохое случилось. Только попробуйте и всплывающее диалоговое * если мы прикреплены к окну. Когда мы уезжаем, и нет * уже есть окно, не беспокойтесь, показывая пользователю сообщение об ошибке. * / Если (! GetWindowToken () = NULL) {Ресурсы г = mContext.getResources (); INT MESSAGEID; если (framework_err == MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK) {MessageId = R.string.VideoView_error_text_invalid_progressive_playback; } Еще {MessageId = R.string.VideoView_error_text_unknown; } Новый AlertDialog.Builder (mContext) .setMessage (MESSAGEID) .setPositiveButton (R.string.VideoView_error_button, новый DialogInterface.OnClickListener) {аннулируются диалог (публичное OnClick (DialogInterface, внутр whichButton) {/ * Если мы получим здесь, нет OnError слушателя, так * по крайней мере информировать их о том, что видео закончилось. * / Если (mOnCompletionListener! = NULL) {mOnCompletionListener.onCompletion (mMediaPlayer); }}}) .SetCancelable (ложь) .show (); } Возвращает истину; }}; частный MediaPlayer.OnBufferingUpdateListener mBufferingUpdateListener = новый MediaPlayer.OnBufferingUpdateListener () {общественного недействительный onBufferingUpdate (MediaPlayer тр, внутр процент) {mCurrentBufferPercentage = процент; }}; / ** * Регистрация обратного вызова, которая будет вызвана, когда медиа-файл * загружен и готов к работе. * * @Param л Обратный вызов, который будет выполняться * / общественного недействительными setOnPreparedListener (MediaPlayer.OnPreparedListener л) {mOnPreparedListener = л; } / ** * Регистрация обратного вызова, которая будет вызвана, когда конец медиафайлов * было достигнуто во время воспроизведения. * * @Param л Обратный вызов, который будет выполняться * / общественного недействительными setOnCompletionListener (OnCompletionListener л) {mOnCompletionListener = л; } / ** * Регистрация обратного вызова, который будет вызван при возникновении ошибки * во время воспроизведения или установки. Если не указан слушатель, * или если слушатель возвращается ложным, VideoView сообщит * пользователю каких-либо ошибок. * * @Param л Обратный вызов, который будет выполняться * / общественного недействительными setOnErrorListener (OnErrorListener л) {mOnErrorListener = L; } / ** * Регистрация обратного вызова будет вызываться, когда информационное событие * происходит во время воспроизведения или установки. * * @Param л Обратный вызов, который будет выполняться * / общественного недействительными setOnInfoListener (OnInfoListener л) {mOnInfoListener = L; } SurfaceHolder.Callback mSHCallback = новый SurfaceHolder.Callback () {общественного недействительный surfaceChanged (держатель SurfaceHolder, Int формат, Int W, Int ч) {mSurfaceWidth = ш; mSurfaceHeight = H; булево isValidState = (mTargetState == STATE_PLAYING); булево hasValidSize = (mVideoWidth == ш && mVideoHeight == ч); если (! mMediaPlayer = NULL && && isValidState hasValidSize) {если (mSeekWhenPrepared = 0) {seekTo (mSeekWhenPrepared); } Начните(); }} Общественный недействительный surfaceCreated (держатель SurfaceHolder) {mSurfaceHolder = держатель; открыть видео(); } Общественного недействительными surfaceDestroyed (держатель SurfaceHolder) {// после возвращения из этого мы не можем использовать поверхность больше mSurfaceHolder = NULL; если (mMediaController! = NULL) mMediaController.hide (); выпуск (истина); }}; / * Освободить медиа-плеер в любом состоянии * / частный выпуск недействительным (логическое cleartargetstate) {если (mMediaPlayer! = NULL) {mMediaPlayer. сброс(); mMediaPlayer.release (); mMediaPlayer = NULL; mCurrentState = STATE_IDLE; если (cleartargetstate) {mTargetState = STATE_IDLE; }}} @Override общественного логический onTouchEvent (MotionEvent эв) {если (isInPlaybackState () && mMediaController! = NULL) {toggleMediaControlsVisiblity (); } Вернуться ложным; } @Override общественного логический onTrackballEvent (MotionEvent эв) {если (isInPlaybackState () && mMediaController! = NULL) {toggleMediaControlsVisiblity (); } Вернуться ложным; } @Override общественного логический OnKeyDown (интермедиат KEYCODE, KeyEvent событие) {булево isKeyCodeSupported = KEYCODE! = KeyEvent.KEYCODE_BACK && ! KEYCODE = KeyEvent.KEYCODE_VOLUME_UP && KEYCODE = KeyEvent.KEYCODE_VOLUME_DOWN && KEYCODE = KeyEvent.KEYCODE_VOLUME_MUTE && KEYCODE = KeyEvent.KEYCODE_MENU && KEYCODE = KeyEvent.KEYCODE_CALL && KEYCODE = KeyEvent.KEYCODE_ENDCALL!!!; если (isInPlaybackState () && && isKeyCodeSupported mMediaController! = NULL) {если (== KEYCODE KeyEvent.KEYCODE_HEADSETHOOK || KEYCODE == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) {если (mMediaPlayer.isPlaying ()) {пауза (); mMediaController.show (); } Еще {начать (); mMediaController.hide (); } Возвращает истину; (! MMediaPlayer.isPlaying ())} еще если (KEYCODE == KeyEvent.KEYCODE_MEDIA_PLAY) {если {начать (); mMediaController.hide (); } Возвращает истину; } Иначе, если (KeyCode == KeyEvent.KEYCODE_MEDIA_STOP || KeyCode == KeyEvent.KEYCODE_MEDIA_PAUSE) {если (mMediaPlayer.isPlaying ()) {пауза (); mMediaController.show (); } Возвращает истину; } Еще {toggleMediaControlsVisiblity (); }} Вернуть super.onKeyDown (KeyCode, событие); } Частная пустота toggleMediaControlsVisiblity () {если (mMediaController.isShowing ()) {mMediaController.hide (); } Еще {mMediaController.show (); }} Общественного недействительного начала () {если (isInPlaybackState ()) {mMediaPlayer.start (); mCurrentState = STATE_PLAYING; } MTargetState = STATE_PLAYING; } Общественного недействительными паузы () {если (isInPlaybackState ()) {если (mMediaPlayer.isPlaying ()) {mMediaPlayer.pause (); mCurrentState = STATE_PAUSED; }} MTargetState = STATE_PAUSED; } Общественного недействительными приостановить () {выпуск (ложь); } Общественного недействительное резюме () {openVideo (); } Общественного ИНТ getDuration () {если (isInPlaybackState ()) {вернуться mMediaPlayer.getDuration (); } Возвращает -1; } Общественного ИНТ getCurrentPosition () {если (isInPlaybackState ()) {вернуться mMediaPlayer.getCurrentPosition (); } Возвращает 0; } Общественного недействительными seekTo (интермедиат мс) {если (isInPlaybackState ()) {mMediaPlayer.seekTo (мс); mSeekWhenPrepared = 0; } Еще {mSeekWhenPrepared = мсек; }} Общественного логический isPlaying () {вернуть isInPlaybackState () && mMediaPlayer.isPlaying (); } Общественного ИНТ getBufferPercentage () {если (! MMediaPlayer = NULL) {вернуться mCurrentBufferPercentage; } Возвращает 0; } Частное логическое isInPlaybackState () {возвращение (mMediaPlayer = NULL && mCurrentState = STATE_ERROR && mCurrentState = STATE_IDLE && mCurrentState = STATE_PREPARING!!!); } Общественного логический canPause () {вернуть mCanPause; } Общественного логический canSeekBackward () {вернуть mCanSeekBack; } Общественного логический canSeekForward () {вернуть mCanSeekForward; }} } Общественного логический canSeekForward () {вернуть mCanSeekForward; }} } Общественного логический canSeekForward () {вернуть mCanSeekForward; }}
fobus
1

голосов
1

ответ
1.6k

Просмотры

медиапроигрыватель путь нуля в андроиде 2.3.6

Медиа-проигрыватель не работает на андроид 2.3.6 Но тот же код работает на 4.x версии. Я использую следующий код для воспроизведения видео общественного класса MainActivity расширяет активность {@Override общественного недействительный OnCreate (Bundle savedInstanceState) {Строка mp4Path = «https://example.com/adplayer/XXX.mp4»; super.onCreate (savedInstanceState); this.setContentView (R.layout.activity_main); VideoView VideoView = (VideoView) findViewById (R.id.videoView); Ури видео = Uri.parse (mp4Path); videoView.setVideoURI (видео); videoView.setMediaController (новый MediaController (это)); videoView.requestFocus (); videoView.start (); }} Я получил следующее сообщение об ошибке, то, что не так в моей стороне? 10-31 12: 51: 14,710 I / VideoView (25774): начало () 10-31 12: 51: 14,742 D / VideoView (25774):
kumaran
1

голосов
1

ответ
53

Просмотры

Способ запуска в определенном положении VideoView

есть способ запустить метод в определенной позиции воспроизведения видео в VideoView? Единственное, что приходит на мой взгляд, что-то вроде: в то время как (кривизну) {если (== videoview.getCurrentPosition Position) {// сделать что-то}}
ntm
1

голосов
1

ответ
1.3k

Просмотры

Настройка диапазона панели поиска

Я в здании пользовательский диапазон SeekBar для моего приложения. Я хочу, чтобы создать диапазон SeekBar же, как изображение ниже: Я исследовал и нашел пользовательский диапазон SeekBar по адресу: https://code.google.com/p/range-seek-bar/. Но это SeekBar имеет только два пальца для начальной и конечной точки. Что мне нужно, это новый большой палец между двумя пальцами, чтобы показать прогресс видео. Я видел много приложений, использовать его, но я не знаю, как настроить диапазон SeekBar. Любое предложение будет оценено! Благодарю.
Sinh Ho
1

голосов
1

ответ
86

Просмотры

Как играть это видео в VideoView?

Я хочу, чтобы создать приложение для воспроизведения / поток видео, я знаю, как играть / поток видео, когда у меня есть связь, но может кто-нибудь сказать мне, как я могу воспроизвести это видео, например, с помощью http://gorillavid.in/orophd79hi8o VideoView или других метод ?? Спасибо
zimeriljazi
1

голосов
1

ответ
821

Просмотры

VideoView Android

Я работаю над приложением, которые имеют два Вида один UI и другой VideoView. UI поток используется до тех пор, некоторые события не произошло, а затем я хочу, чтобы setContentView VideoView, но я получил ошибку по настройке вид содержимого из пользовательского интерфейса к VideoView. Для VideoView я использую код ниже: Java setContentView (R.layout.videoview); VideoView = (VideoView) findViewById (R.id.videoview); Строка путь = "android.resource: //" + getPackageName () + "/" + R.raw.vid; VideoView.setVideoURI (Uri.parse (путь)); VideoView.start (); XML Вот ошибка, что я получаю: android.view.ViewRootImpl $ CalledFromWrongThreadException: только исходный поток, который создал иерархию вида может коснуться его точки зрения. Что я делаю неправильно? EDIT 0: Код с UI нити: общественный класс View расширяет SurfaceView реализует Runnable {Тема = NULL; SurfaceHolder SurfaceHolder; булево Play; общественное мнение (контекст Context) {супер (контекст); SurfaceHolder = getHolder (); } @Override общественного недействительными запуска () {в то время как (Play) {если продолжить (SurfaceHolder.getSurface () IsValid (!).); // рисование, если (что-то) Видео (); } Общественной недействительная Pause () {// вызывается из OnPause () Play = ложь; в то время как (истинно) {попробуйте {если (Thread! = NULL) Thread.join (); } Задвижка (InterruptedException е) {e.printStackTrace (); } перерыв; } Thread = NULL; } Общественного недействительное резюме () {// вызывается из onResume () Play = истина; Тема = новая тема (это); Thread.start (); } Общественного недействительными Видео () {setContentView (R.layout.videoview); VideoView = (VideoView) findViewById (R.id.videoview); Строка путь = "android.resource: //" + getPackageName () + "/" + R.raw.vid; VideoView.setVideoURI (Uri.parse (путь)); VideoView.start (); }}
acac97
1

голосов
1

ответ
191

Просмотры

Получить кадры видео и выполнять изменения в этом кадре в андроид

Мне нужно, чтобы получить кадры будут видео и сделать некоторые изменения на нем, как рисовать что-то на нем или написать какой-нибудь текст. Тогда на спасение мне нужно это видео с тем, что изменения. Пожалуйста, предложите мне лучший способ сделать это. Любая помощь приветствуется. Пожалуйста, смотрите ниже приложение для, чтобы понять мою проблему https://play.google.com/store/apps/details?id=com.techsmith.apps.coachseye.free
Naresh Sharma
1

голосов
1

ответ
2.5k

Просмотры

Как создать вид видео на полный экран внутри макета кадра или линейного макета

Я поместил видео Просмотр и Просмотр изображений и текста Просмотр в FrameLayout у меня есть проблемы, играя видео в полноэкранном режиме. Я хочу использовать только рамку или Linear Layout.
Rajesh Soni
1

голосов
1

ответ
1.3k

Просмотры

Android Video View - не могу воспроизвести это видео

У меня есть несколько учебник экраны в мое приложение, а на некоторых Samsung устройства, я получаю эту ошибку при попытке воспроизвести его: Не удается воспроизвести видео Упомянутый видео находится в пакете приложения, а не на какой-то внешний источник, как SD-карты, так что я не знаю, Что проблема ... видео в формате .mp4, вот как я играю vvTutorial = (VideoView) v.findViewById (R.id.vvTutorial); Ури myUri = Uri.parse ( "android.resource: //" + getActivity () getPackageName () + "/" + R.raw.video_tut_4.); vvTutorial.setMediaController (нуль); vvTutorial.setVideoURI (myUri); vvTutorial.start (); vvTutorial.setOnPreparedListener (новый OnPreparedListener () {@Override общественный недействительный onPrepared (MediaPlayer т.пл) {mp.setLooping (истина);}}); Что случилось, почему он дает эту ошибку только на этом устройстве,
1

голосов
1

ответ
1.1k

Просмотры

объединить аудио и видео файлов в Android

Я использую mp4parser для слияния аудио и видео файлов, здесь ниже, например я попробовал, но я получаю исключение нулевого указателя на самую самый первую строку. я сохранил аудио и видео файлов в нужном месте в моей внутренней памяти телефона. если я отладки, первая строка займет много времени и просто останавливается после минут с нулевым указателем ошибки попробуйте {H264TrackImpl h264Track = новый H264TrackImpl (новый FileDataSourceImpl ( «/ шоссе / SDCard / MyVideo / video.mp4»)); AACTrackImpl aacTrack = новый AACTrackImpl (новый FileDataSourceImpl ( "/ шоссе / SDCard / MyVideo / audio.acc")); Фильм фильм = новый фильм (); movie.addTrack (h264Track); movie.addTrack (aacTrack); Контейнер mp4file = новый DefaultMp4Builder () построить (фильм). FileChannel к = новый FileOutputStream (новый файл ( "выход.
Naruto
1

голосов
1

ответ
579

Просмотры

VideoView Добавить несколько видео и игры

Позволяет делать вид в SDCard или внутренней памяти о том, что 5 видео. Теперь я уже получить путь к файлу, моя проблема заключается в том, как я могу вставить несколько видео в VIDEO VIEW? Следующая или предыдущая кнопка не функционирует здесь мой код общественной недействительной GetFile () {URLs = getIntent () getStringArrayListExtra ( «url_videoAll»). ключи = getIntent () getStringArrayListExtra ( "key_videoAll").; для (INT I = 0; я
Jude Bautista
1

голосов
1

ответ
642

Просмотры

Сжатие видео При получении от сервера в Android

Я создаю приложение, которое будет вызывать видео, хранящиеся на FTP-сервере. Я предоставление возможности для воспроизведения видео в Интернете с помощью Android VideoView описано в ссылке ниже. Моя проблема заключается в том, что я хочу пользователю выбрать, какие качества он предпочитает смотреть видео в то есть низкого или высокого качества, по выбору Низкое качество качество видео должно уменьшить время воспроизведения видео (в случае HD-видео). Кто-нибудь есть идеи о том, как достичь этого. Приглашен ссылку для просмотра видео с помощью Android VideoView: http://www.androidbegin.com/tutorial/android-video-streaming-videoview-tutorial/
Sagar mehta
1

голосов
2

ответ
222

Просмотры

Как загрузить список видео на SDCard и играть на VideoView?

Я использовал VideoView для воспроизведения видео из сырой папки локально, но теперь им пытается загрузить список видео первым на SDCard и после того, как играть в медиа-плеер. Вот мой VideoView. общественный класс MainActivity расширяет активность {/ * Full Screen Mode-Sticky * / @Override общественного недействительными onWindowFocusChanged (булево HasFocus) {super.onWindowFocusChanged (HasFocus); Просмотр decorView = GetWindow () getDecorView (). если (HasFocus) {decorView.setSystemUiVisibility (View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); }} Общественного недействительными downloadVideoFile (String URL, String dest_file_name) {попробуйте {URL домен = новый URL ( "http://192.168.0.22"); Строка video_folder = "видео"; . Строка sdcard_path = Environment.getExternalStorageDirectory () getAbsolutePath (); Строка dest_video_path = sdcard_path + File.separator + video_folder + File.separator + dest_file_name; dest_file File = новый файл (dest_video_path); URL и = новый URL (домен + "/ файлы / видео /"); URLConnection Conn = u.openConnection (); INT ContentLength = conn.getContentLength (); DataInputStream поток = новый DataInputStream (u.openStream ()); байт [] буфера = новый байт [ContentLength]; stream.readFully (буфер); stream.close (); DataOutputStream FOS = новый DataOutputStream (новый FileOutputStream (dest_file)); fos.write (буфер); fos.flush (); fos.close (); } Задвижка (FileNotFoundException е) {возвращение; } Поймать (IOException е) {возвращение; }} Частный VideoView myVideo1; @Override общественного недействительный OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); . GetWindow () SetFormat (PixelFormat.TRANSLUCENT); setContentView (R.layout.activity_main); Строка video_folder = "myvideos"; . Строка sdcard_path = Environment.getExternalStorageDirectory () getAbsolutePath (); fvideo_path File = новый файл (sdcard_path + File.separator + video_folder); Файл videolist [] = fvideo_path.listFiles (); Строка play_path = videolist [0] .getAbsolutePath (); myVideo1 = (VideoView) findViewById (R.id.myvideoview); myVideo1.setVideoPath (play_path); myVideo1.start (); myVideo1.requestFocus (); myVideo1.setOnPreparedListener (новый MediaPlayer.OnPreparedListener () {@Override общественных недействительный onPrepared (MediaPlayer т.пл) {mp.setLooping (истина);}}); }}
Aldo
1

голосов
1

ответ
835

Просмотры

Субтитры на VideoView

Я строю простой видеоплеер для андроид устройства. Это устройство работает под управлением ОС Android 4.2. Я хочу играть TS видео с субтитрами. Я могу играть видео с VideoView и мне интересно, если есть способ, чтобы показать субтитры. Субтитры хранятся в видеофайл. Я искал, но я не нашел никаких ответов. Я также попытался с библиотекой ExoPlayer, но это не играет видео. Спасибо
Jmaj
1

голосов
2

ответ
774

Просмотры

VideoView ViewPager черные линии в то время как Swiping

У меня есть проблема с VideoView и ViewPager ударяя действие. В то время как ударяя я вижу черные линии на правой или левой стороне VideoView (зависит от стороны Swiping). Как я могу справиться с этим. Это было сделано с помощью FragmentStatePagerAdapter и ViewPager. Родитель активность имеет SurfaceView с шириной и высотой 0px и установить GetWindow () .setFormat (PixelFormat.TRANSLUCENT); Я добавляю VideoView из JAVA кода.
xAqweRx
1

голосов
2

ответ
575

Просмотры

Import library eneim/Toro in Android Studio

I am trying to import "eneim/Toro" in android studio, but every time i get the error Error:Could not find property 'bintray_user' on [email protected] build.gradle: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.5.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' classpath 'com.novoda:bintray-release:0.3.5' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } apply plugin: 'bintray-release' } ext { libraryVersion = '2.0.0' androidVersion = 24 buildToolVersion = '24.0.0' supportLibraryVersion = '24.0.0' minSupportSDKVersion = 16 } allprojects { repositories { jcenter() maven { url "https://jitpack.io" } maven { url "https://jcenter.bintray.com" } } tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') options.addStringOption('encoding', 'UTF-8') } configurations { javadocDeps } } task clean(type: Delete) { delete rootProject.buildDir }
Shahbaz
1

голосов
1

ответ
925

Просмотры

VideoView не в состоянии воспроизводить видео с ресурса

Я проверил другие вопросы, и применил решение имеющегося в них, но до сих пор она не работает. Я поместил видео в моей сырой папке. Я получаю видео с помощью следующего пути метода String = "android.resource: //" + getPackageName () + "/" + R.raw.splash_video; VideoView = (VideoView) findViewById (R.id.splash_videoView); Uri Uri = Uri.parse (путь); videoView.setVideoURI (URI); videoView.start (); Видео в формате MP4, Когда я запускаю мою программу, она показывает мне не удается воспроизвести видео сообщения. Когда я отладки кода, я обнаружил, что она изменяет значение пути к этому: путь = android.resource: /// 2131099757 Если я изменить путь к некоторым URL, он успешно воспроизводит видео. Строка путь = «www.abc.com/someVideo.mp4» Просьба направлять меня, как играть mp4 видео из сырой
Kirmani88
1

голосов
1

ответ
112

Просмотры

Can't play YouTube video in my app

I want to play a YouTube video in my app. I'm confused now what to do. If you know any other method how to put YouTube video in apps then please tell. import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.VideoView; import android.widget.MediaController; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); VideoView videoView =(VideoView)findViewById(R.id.videoView); MediaController mediaController= new MediaController(this); mediaController.setAnchorView(videoView); Uri uri=Uri.parse("rtsp://r2---sn-a5mekney.googlevideo.com/Cj0LENy73wIaNAlesqO_bJs9khMYDSANFC2Yi_JXMOCoAUIASARgnaGur5OBx_hXigELcTg4UmstWUFleWcM/1C1D9E3122CE052254D17B1F5AF58175E47748CF.26C6350D80F279F00F0B11480BA4C5D3E7F7F40A/yt6/1/video.3gp"); videoView.setMediaController(mediaController); videoView.setVideoURI(uri); videoView.requestFocus(); videoView.start(); } } It shows the error cant play this video manifest code is
Tarun Bisht
1

голосов
1

ответ
69

Просмотры

Android - VideoView - Просмотры исчезают, когда я иду в полноэкранный режим

Когда я играю видео на VideoView, все мои взгляды на вершине этого исчезают. Я в полноэкранном режиме. . GetWindow () getDecorView () setSystemUiVisibility (View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY). Если удалить полноэкранный режим или, если приостановить видео, все мои взгляды видны. Даже если Toast видно, на мой взгляд видны в то время тоста видна. Я на Android 4.4.4. Я уже пытался создать FrameLayout, включая все на переднем плане взглядов и привести его на передний план, когда я начинаю играть видео. bgVideoView. setOnPreparedListener (новый MediaPlayer.OnPreparedListener () {@Override общественных недействительный onPrepared (MediaPlayer т.пл) {mp.setLooping (истина); bgVideoView.start (); foregroundLayout.bringToFront ();}}); Я также попытался bgVideoView.setZOrderOnTop (ложь) Мой XML похож
horex
1

голосов
1

ответ
1.3k

Просмотры

показывая ошибка приложения не может добавить окно - маркер нуль не является действительной; работает ваша деятельность?

Я хочу показать видео на всплывающем окне от службы, но когда я запустить службу моего сбой приложения показать эту ошибку: - android.view.WindowManager $ BadTokenException: Невозможно добавить окно - маркер нуль не является действительным; работает ваша деятельность? Мой код сервиса видеопроигрывателя здесь: VideoExtractor VideoExtractor = VideoExtractor.create (); VideoExtractor.extract ( "FTD9aA4S5BY") Ставить (новый обратный вызов () {@Override общественного недействительными onResponse (Call-вызов, ответ ответ) {Log.d (TAG, response.body () getVideoUri () ToString ())...; Окончательный VideoView mVideoview = (VideoView) mView.findViewById (R.id.youtubePlayer); mVideoview.setMediaController (новый MediaController (PlayerService.this)) mVideoview.setVideoURI (. response.body () getVideoUri ()); mVideoview.start () ; WindowManager.LayoutParams PARAMS = новые WindowManager.LayoutParams (WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_PHONE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT); params.gravity = Gravity.TOP | Gravity.LEFT; params.x = 0; params.y = 100; mWindowManager.addView (MView, PARAMS); } @Override общественного недействительный OnFailure (Call-вызов, Throwable т) {}}); Я звоню эту услугу от myactivity по методе резюме. стек ошибок этой ошибки здесь: android.view.WindowManager $ BadTokenException: Невозможно добавить окно - маркер нуль не является действительным; работает ваша деятельность? на android.view.ViewRootImpl.setView (ViewRootImpl.java:574) в android.view.WindowManagerGlobal.addView (WindowManagerGlobal.java:310) в android.view.WindowManagerImpl.addView (WindowManagerImpl.java:86) в android.widget. MediaController.show (MediaController.java:379) в android.widget.MediaController.show (MediaController.java:329) в android.widget.VideoView $ 2.onPrepared (VideoView.java:
sasuke
1

голосов
1

ответ
306

Просмотры

Как оживить VideoView вместе с ImageView и recyclerView?

Я хочу использовать одушевленные на VideoView, который находится выше ImageView и recyclerView. Во-первых, видимость VideoView является Унесенные и когда я нажимаю на элементе на recyclerView я хочу сделать VideoView Видимый с анимацией сползания, а также использовать анимацию в ImageView для slideUp и сделать его Унесенные. Как я могу это сделать. Я дал снимок до и после макета. Перед Animation: После анимации:
Kabindra Shrestha
1

голосов
1

ответ
202

Просмотры

остановить видеоплеер в фрагменте на pressback

У меня есть вид видео в моем фрагменте и его работе. А метод паузы я звоню остановки игрок его работу. Но когда я нажав назад, я иду в старый фрагмент и видео до сих пор играю. как остановить видео просмотра игрока на задней печати в фрагменте.
androidking
1

голосов
1

ответ
813

Просмотры

Невозможно воспроизвести видео на VideoView

я пытаюсь сделать поток видео приложений с VideoView, но я получил ошибку не удается воспроизвести это видео, когда я пытаюсь получить URL из API, вот код ошибки: String url_video = vid.source_content; но когда я добавить URL-адрес вручную (копия пасты из API) видео может работать очень хорошо, вот код: String url_video = «http://117.54.4.124:12180/mvicall/uploads/premium/Eli Sugigi - angkat sekarang JUGA .mp4" ; и вот мой полный код для VideoView: окончательное TopArtis VID = getIntent () getParcelableExtra ( "видео");. Строка url_video = vid.source_content; // Строка url_video = "http://117.54.4.124:12180/mvicall/uploads/premium/Eli Sugigi - angkat sekarang juga.mp4"; MediaController = новый MediaController (это); mediaController.setAnchorView (MediaController); Uri Uri = Uri.parse (url_video); videoview.setVideoURI (URI); videoview.setMediaController (MediaController); videoview.setOnPreparedListener (новый MediaPlayer.OnPreparedListener () {@Override общественного недействительными onPrepared (MediaPlayer MediaPlayer) {videoview.start ();}}); videoview.setOnErrorListener (новый MediaPlayer.OnErrorListener () {@Override общественного логический OnError (MediaPlayer MediaPlayer, Int я, внутр i1) {вернуться ложным;}}); INT i1) {вернуться ложным; }}); INT i1) {вернуться ложным; }});
asqa
1

голосов
2

ответ
0

Просмотры

Как скрыть панель инструментов при использовании сервиса? [закрыто]

Эй, я использую VideoView в качестве службы. Но когда я делаю вид видео на полный экран панель инструментов не скрывает. Как скрыть панель инструментов в обслуживании. Благодарю вас
IOTA IT
1

голосов
1

ответ
0

Просмотры

Можно ли встроить в Android.VideoView Xamarin форм ContentView

Мне нужно создать мобильное приложение, которое нужно запустить на андроид 7.0 - 9.0 и последнюю прошивку Так что в моем VS 2017 15.9.6 на Windows 10 Я пытаюсь использовать Xamarin.Forms 3,4 в общем проекте в качестве контейнера для родной Android .VideoView. Я пытаюсь выяснить, как сделать это, так как примеры Mono.Android не используют Xamarin.Forms. Итак, нужно ли мне своего рода #ifdef в файле XAML, на возможность размещения THS Android VideoView? Или я совершенно неправильно с этим подходом?
x y
1

голосов
1

ответ
5.1k

Просмотры

Android VideoView

Я пытаюсь использовать Android VideoView для воспроизведения видео в моем SDCard. И играть в следующем видео в моем SDCard если SDCard есть несколько видео. Но ни в моем эмуляторе или смартфоне приложение работы. Я уже добавить разрешение и видео на моем SDCard. Ниже мой код, пакет com.example.videotest; импорт android.media.MediaPlayer; импорт android.media.MediaPlayer.OnCompletionListener; импорт android.os.Bundle; импорт android.provider.MediaStore.Video; импорт android.app.Activity; импорт android.database.Cursor; импорт android.view.Menu; импорт android.widget.Toast; импорт android.widget.VideoView; общественный класс MainActivity расширяет активность реализует OnCompletionListener {Cursor mediaCursor = NULL; VideoView VideoView = NULL; INT dataIdx = 0; @Override общественного недействительный onCompletion (MediaPlayer arg0) {// TODO автоматической генерации метод заглушка playNextVideo (); } Общественного недействительными OnCreate (Пачка savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); VideoView VideoView = (VideoView) findViewById (R.id.videoView1); videoView.setOnCompletionListener ((OnCompletionListener) это); проекция String [] = новый String [] {Video.Media.DATA}; mediaCursor = getContentResolver () запроса (Video.Media.EXTERNAL_CONTENT_URI, проекция, NULL, NULL, NULL). если (mediaCursor = NULL && mediaCursor.getCount ()> 0) {dataIdx = mediaCursor.getColumnIndex (Video.Media.DATA); playNextVideo (); }} Частная пустота playNextVideo () {mediaCursor.moveToNext (); если (mediaCursor.isAfterLast ()) {Тост. makeText (getApplicationContext (), "Конец строки", Toast.LENGTH_SHORT) .show (); } Еще {Строка путь = mediaCursor.getString (dataIdx); Toast.makeText (getApplicationContext (), "игры:" + путь, Toast.LENGTH_SHORT) .show (); videoView.setVideoPath (путь); videoView.start (); }} @Override общественного недействительными OnDestroy () {если (mediaCursor! = NULL) {mediaCursor.close (); }} @Override общественного логический onCreateOptionsMenu (меню Menu) {getMenuInflater () надуваться (R.menu.activity_main, меню). возвращает истину; }} 01-29 10: 43: 39,186: Вт / WindowManager (161): Неспособность принимать скриншот для (246x410) к слою 21015 01-29 10: 43: 39,256 I / Хореограф (429): Пропущенные 32 кадра! Приложение может делать слишком много работы на своем главном потоке. 01-29 10:43:39. 535: I / Хореограф (429): пропущено 59 кадров! Приложение может делать слишком много работы на своем главном потоке. 01-29 10: 44: 03,995 D / AndroidRuntime (тысяча триста сорок пять): >>>>>> AndroidRuntime СНВ com.android.internal.os.RuntimeInit> AndroidRuntime СНВ com.android.internal.os.RuntimeInit
DekangHu

Просмотр дополнительных вопросов

Связанные вопросы