169 похожих чатов

Всем привет. Пытаюсь получить первый кадр с видео. На Google

эмуляторе всё работает, а на реальном устройстве выдаёт ошибку:
java.lang.IllegalArgumentException at android.media.MediaMetadataRetriever.setDataSource
В строке с setDataSource
Предполагаю, что это как-то связано с версиями API, но решение этой проблемы не нашёл.

Можете помочь справиться с ошибкой?

15 ответов

15 просмотров

А дальнейшее описание эксепшна есть?

Судя по документации нужно передавать FileDescriptor, а у вас просто строка. Думаю нужно копать в этом направлении

Тимофей Простов
Попробую покопаться, спасибо

Не слушай никого. Посмотри какие там варианты параметров. Там их 8 штук setDataSource. Среди них есть и строка.

Дмитрий moto_mdv
Судя по документации нужно передавать FileDescript...

Ты все еще за 8000 км от компьютера? Если уж смотреть документацию, то в документации 8 вариантов метода. Среди которых есть и строка. setDataSource public void setDataSource (String path) Sets the data source (file-path or http/rtsp URL) to use. Что в общем-то и подтверждается тем, что на эмуляторе работает корректно.

Мб если версия андройда ниже на реальном устройстве то можно попробовать указать легаси сторедж в манифесте

Andrey
Мб если версия андройда ниже на реальном устройств...

И как это повлияет? Автор вопроса не удосужился в вопросе описать что он там передает в параметре метода. Если там url на видео в интернете, то чем поможет "легаси сторедж"? Мы не знаем всех условий. Ни версии андроидов, ни полного кода проекта. Ни откуда видео берется. Вообще ничего. Какой смысл тренировать в себе телепатические способности?

Seva
И как это повлияет? Автор вопроса не удосужился в ...

Ну если бы ты сам запускал студию хоть иногда знал бы разницу как работает со стореджем андройд на старых версиях и на новых версиях Я кинул предположение которое которое не заняло у меня и больше 5 минут. А так согласен что без логирования/дебагинга это тыкание пальцем в небо

Andrey
Ну если бы ты сам запускал студию хоть иногда знал...

не знаю и знать не хочу. Но если там берется не из файла на файловой системе, то на setDataSource никак не влиет.

Seva
Не слушай никого. Посмотри какие там варианты пара...

А, ну да, можешь в качестве эксперимента поставить targetApi 28, например, и проверить на устройстве. Вполне возможно что неправильно путь к файлу указан (прав у приложения нет). Если в этом причина - то курить как правильно файлы передавать (вроде с 30 апи строже стало, а в 29 можно было флаг в манифесте прописать)

Тимофей-Простов Автор вопроса
Seva
И как это повлияет? Автор вопроса не удосужился в ...

Я передаю uri локального видео, версии андроидов: На эмуляторе 10 На реальном устройстве 12

Тимофей Простов
Я передаю uri локального видео, версии андроидов: ...

Тогда очень похоже, что нужно получить разрешение на доступ в более новом андроиде. Ну и форма uri имеет значение. files:// в новых не работают, если приложение не файл мэнэджер. Хотя это опять же телепатия. Локально для приложения все работает, на любой версии андроида. Надо экстрасенсов вызывать, что бы рассказывали и показывали, что там у вас. И почему эмулятор старой версии андроида, хотя устройства новые.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта