Синтаксис и определение кодов ошибок Media Player

Я не могу найти документацию по кодам ошибок в отношении Android. Я собираю приложение, которое, похоже, работает с настройкой API более низкого уровня, но не с более высоким. Ошибка возникает при попытке воспроизвести аудиофайл, и, как я уже сказал, все это работало в более низкой версии.

Код ошибки, который я вижу, находится в журнале:

Информация/предупреждение MediaPlayer (1, 32)
Информация MediaPlayer (1,32)
Информация MediaPlayer/предупреждение (1,26)
Информация MediaPlayer (1,26)
Ошибка MediaPlayer (351, - 4)
Ошибка MediaPlayer(351,-4)
Ошибка VideoView(351,-4)

Так может кто-нибудь объяснить, как это работает в деталях? Я знаю, что у меня есть ошибка в MediaPlayer и, возможно, VideoView в соответствии с приведенными выше данными, но что представляют собой числа? Я предполагаю, что это конкретная ошибка, но какая?

Я не могу найти ничего об этом и о том, как это расшифровывается. Где я могу найти документацию о том, как узнать, что это значит, вот главный вопрос.

Если бы я мог получить ответ для этого конкретного кода ошибки, это было бы еще лучше, но опять же, реальный источник документации, чтобы я мог сам искать дополнительные коды, также был бы очень полезен.

Вот точный файл журнала, экспортированный Eclipse:

07-04 12:22:48.298: V/key =(6969): http://xxxxxx/glennharrold/audio/normal/relaxsleepwellfull.mp3
07-04 12:22:48.388: D/MediaPlayer(6969): Couldn't open file on client side, trying server side   
07-04 12:22:48.388: D/SprintMM(6969): Proxy will be bypassed because of WIFI connection.
07-04 12:22:48.508: W/MediaPlayer(6969): info/warning (1, 32)
07-04 12:22:48.508: I/MediaPlayer(6969): Info (1,32)
07-04 12:22:48.508: W/MediaPlayer(6969): info/warning (1, 26)
07-04 12:22:48.508: I/MediaPlayer(6969): Info (1,26)
07-04 12:22:48.508: E/MediaPlayer(6969): error (351, -4)
07-04 12:22:48.508: E/MediaPlayer(6969): Error (351,-4)
07-04 12:22:48.508: D/VideoView(6969): Error: 351,-4

Теперь неясно, что именно означает то, что я вижу, что это может иметь какое-то отношение к тому, что файл не найден на стороне клиента, но этот точно такой же код работает в более низкой версии API. Я скопировал рабочий код в это приложение, чтобы сделать новый. Единственное, что я вижу в этом, чего я не видел в своем логарифме в Eclipse, - это (6969), а D/, E/, W/, I/ перед текстом MediaPlayer не знают, что означает этот дополнительный материал, и он появляется только при экспорте код в текстовый файл.


person Jeff Janes    schedule 04.07.2012    source источник
comment
Исходный код, logcat, что вы исследовали? Каковы были ваши выводы? Какое тестирование вы сделали? Что вы пробовали?   -  person t0mm13b    schedule 04.07.2012
comment
Вышеизложенное взято из logcat. Безуспешно искал в Интернете практически все, что связано с кодами ошибок mediaPlayer. Я просмотрел данные, вводимые в медиаплеер, и все выглядит хорошо, НО, что более важно, где я могу найти определения кода ошибки, чтобы я мог, по крайней мере, указать правильное направление и добавить определения в свои ресурсы отладки.   -  person Jeff Janes    schedule 04.07.2012
comment
Ваш логарифм по какой-то причине урезан и слишком расплывчат, поэтому понятия не имею, о чем идет речь, и это тоже бесполезно. Предлагаем вам отредактировать свой вопрос, включив в него полный лог-кат с подробным описанием ошибок. :)   -  person t0mm13b    schedule 04.07.2012
comment
отредактировано, как было предложено. Медиа-ссылка существует и доступна в других приложениях. на самом деле это новое приложение, которое будет обновлением для более старой версии приложения, поэтому я знаю, что ссылка работает   -  person Jeff Janes    schedule 04.07.2012
comment
Как звучит MP3? на компе нормально играет? Какой у него битрейт? Возможно, стоит для начала проверить, действительно ли он правильно воспроизводится на собственном стандартном медиаплеере Android, если он не воспроизводится, у вас есть ответ :)   -  person t0mm13b    schedule 04.07.2012
comment
Появляется окно с ошибкой и говорится, что видео не может быть воспроизведено. Но, как я уже сказал, точно такая же аудиоссылка/медиафайл воспроизводится в другом подобном приложении с использованием того же кода.   -  person Jeff Janes    schedule 04.07.2012
comment
нет, я не говорю о вашем коде, я говорю о стандартном приложении для воспроизведения мультимедиа, это для вашей проверки, чтобы убедиться, что он подтвердил, что медиа не поврежден.   -  person t0mm13b    schedule 04.07.2012
comment
Где я могу узнать, что означают 351 и -4, почему это нелегко определить, я не могу получить прямой ответ на этот вопрос? Я видел что-то, что упоминает pvm?? или что-то близкое к нему, и в нем перечислены конкретные коды ошибок и их значение, но ничего об этом. Это специально спрятано????   -  person Jeff Janes    schedule 04.07.2012
comment
когда я открываю ссылку в веб-браузере, она воспроизводится абсолютно нормально.   -  person Jeff Janes    schedule 04.07.2012
comment
Вы пробовали стандартный медиаплеер, а не веб-браузер? Поскольку в веб-браузере есть собственный плагин для его обработки... это то, что я пытаюсь устранить...   -  person t0mm13b    schedule 05.07.2012
comment
Я делаю ставку на то, что мультимедиа несовместимо и не обрабатывается собственной версией медиаплеера ОС Android. Иначе почему он сообщает об ошибках/предупреждениях в результате игры...   -  person t0mm13b    schedule 05.07.2012
comment
Посмотрите на мой ответ ниже   -  person t0mm13b    schedule 05.07.2012


Ответы (1)


К вашему сведению, когда logcat отображает информацию, это одно из следующих:

  • D – D ebug
  • W – W предупреждение
  • I - I информация

За которым следует '/' с идентификатором для идентификации кодового имени Java, которое обычно определяется TAG, как в стандартной практике:

public class fooClass{
    private static final String TAG = "fooClass";
    // ... SNIP
}

Далее следует идентификатор процесса Java-кода, работающего в DalvikVM, а также некоторый информативный код/сообщение об ошибке в зависимости от спецификации программы.

Например, продолжая работу с классом Java fooClass, как указано выше, предположим, что у него есть функция fooMethod, подобная этой:

private void fooMethod(){    
    Log.d(TAG, "fooMethod() - This is a debug message");    
    //    
    Log.i(TAG, "fooMethod() - This is a info message");    
    //    
    Log.w(TAG, "fooMethod() - This is a warning message"); 
}

Теперь это будет отображаться в журнале следующим образом:

07-04 20:58:00 D/fooClass (1234): fooMethod() - This is a debug message 
07-04 20:58:00 I/fooClass (1234): fooMethod() - This is a info message 
07-04 20:58:00 W/fooClass (1234): fooMethod() - This is a warning message

Некоторые приложения будут отображать сообщение по усмотрению программиста или отображать загадочное сообщение.

Примечательно, что в самой среде Android некоторые службы будут отображать бессмысленное сообщение, которое не имеет большого значения ни для кого, кроме разработчиков самого ПЗУ, чтобы помочь в устранении неполадок.

Редактировать: Поскольку ОП настаивал на том, чтобы попытаться понять это, вот

Исходный код AOSP для MediaPlayer находится на github здесь, посмотри там есть ссылка на 'pvmf_return_codes.h' в источнике в строке номер 1547, которая, быстрое гугл-фу, приводит к этому ссылка. Код ошибки и состояние являются результатом несовместимости или ошибки носителя.

person t0mm13b    schedule 04.07.2012
comment
Спасибо, это основная информация, которую я искал, поэтому, как я понимаю, первое число (351) на самом деле ничего не значит, а -4 означает это в соответствии со вторым документом, который вы упомянули const PVMFStatus PVMFErrNotSupported = (-4) ; /* Ошибка из-за неверного аргумента */ - person Jeff Janes; 06.07.2012
comment
Не забывайте, что... const PVMFStatus PVMFInfoSourceFormatNotSupported = 32; было упомянуто выше в части "Предупреждение" :) const PVMFStatus PVMFInfoErrorHandlingStart = 26; предназначено для обработки исключений, если хотите, оно начинается с 26, затем встречается с 32, поэтому основано по порядку последовательности, возможно, служба MediaPlayer не смогла ее обработать, либо mp3 имеет неправильный формат кодека, либо что-то еще... трудно сказать или точно определить, что это такое! - person t0mm13b; 06.07.2012
comment
Большое вам спасибо, это очень помогает, я бы ответил раньше, но был болен, поэтому, вернувшись к первой ссылке, которую вы мне дали, я могу найти подробную информацию о данном типе ошибки, игнорируйте средние числа и сосредоточьтесь на последнем, который является на самом деле важная часть - person Jeff Janes; 07.07.2012
comment
Рад, что смог помочь, надеюсь, ты выздоравливаешь, окей :) - person t0mm13b; 07.07.2012
comment
Можете ли вы проголосовать и отметить этот ответ решенным, если он вас удовлетворил? :) - person t0mm13b; 08.07.2012
comment
Репутация недостаточно высока, чтобы проголосовать за это, я проверил это, хотя - person Jeff Janes; 08.07.2012