2013-09-08 3 views
4

Я пытаюсь воспроизвести и аудиофайл в Phonegap 3.0, работая на Windows, платформу Android, отлаживая Eclipse.Phonegap 3.0 Media API - сломанный?

Я пытаюсь обновить свои рабочие, без ошибок, приложение до 3.0 и у меня много проблем.

Например, когда я воспроизвожу звук, он воспроизводится, тогда я получаю ошибку переименования файла в несуществующем файле tmp из API MediaRecorder? Однако я не называю переименование или запись.

  • Похоже, что после вызова вызова для команды воспроизведения звука вызывается API звуковой записи. Должны быть некоторые серьезные ошибки с тем, как работает 3.0.

Вот журнал. Поскольку вы можете видеть, что звуковой файл воспроизводится нормально, по какой-то причине MediaRecorder вызывается, и он пытается переименовать файл tmp, который не существует. Не имеет значения, мой код не изменился во время обновления, поэтому нет причин для каких-либо из этих ошибок. Я следую API Media Play из документации 3.0. Я также получаю новые предупреждения о предупреждении потока. Звуковой файл, который я воспроизвожу, - это короткий клип под 100 КБ.

Плагин добавлен с использованием инструмента CLI, я добавил код функции в файл config.xml, и я добавил разрешения в файл манифеста. Я читал, что у других есть эта проблема, и, похоже, нет никакого решения.

09-08 15:06:07.821: D/webview(9279): [WebView::UPDATE_SELECTION] ====== start 
09-08 15:06:07.951: V/MediaRecorderJNI(9279): setup 
09-08 15:06:07.951: V/MediaRecorderJNI(9279): setMediaRecorder E: mr = mr 
09-08 15:06:07.951: V/MediaRecorderJNI(9279): setMediaRecorder X 

09-08 15:06:07.961: W/PluginManager(9279): THREAD WARNING: exec() call to Media.create blocked the main thread for 31ms. Plugin should use CordovaInterface.getThreadPool(). 

09-08 15:06:07.961: I/AudioSystem(9279): getting audio flinger 
09-08 15:06:07.961: I/AudioSystem(9279): returning new audio session id 
09-08 15:06:07.971: D/MediaPlayer(9279): setDataSource(FileDescriptor fd) in 
09-08 15:06:07.981: D/dalvikvm(9279): GC_CONCURRENT freed 421K, 49% free 3166K/6151K, external 0K/0K, paused 2ms+3ms 
09-08 15:06:08.021: D/MediaPlayer(9279): setDataSource(FileDescriptor fd) out 

09-08 15:06:08.041: W/PluginManager(9279): THREAD WARNING: exec() call to Media.startPlayingAudio blocked the main thread for 78ms. Plugin should use CordovaInterface.getThreadPool(). 

09-08 15:06:08.041: D/CordovaLog(9279): file:///android_asset/www/js/test.js: Line 1463 : maxTempCount: 1 
09-08 15:06:08.041: I/Web Console(9279): maxTempCount: 1 at file:///android_asset/www/js/test.js:1463 
09-08 15:06:08.041: D/AudioPlayer(9279): Send a onStatus update for the new seek 
09-08 15:06:08.041: D/MediaPlayer(9279): start() in 
09-08 15:06:08.051: D/MediaPlayer(9279): start() out 
09-08 15:06:11.465: D/AudioPlayer(9279): on completion is calling stopped 

09-08 15:06:11.545: D/CordovaLog(9279): file:///android_asset/www/js/test.js: Line 1391 : playAudio():Audio Success: sound.mp3 
09-08 15:06:11.545: I/Web Console(9279): playAudio():Audio Success: sound.mp3 at file:///android_asset/www/js/test.js:1391 

09-08 15:06:11.555: D/MediaPlayer(9279): release() in 
09-08 15:06:11.565: D/MediaPlayer(9279): release() out 
09-08 15:06:11.565: V/MediaRecorderJNI(9279): native_reset 

09-08 15:06:11.565: V/MediaRecorderJNI(9279): getMediaRecorder E 
09-08 15:06:11.565: V/MediaRecorderJNI(9279): process_media_recorder_call 
09-08 15:06:11.565: D/AudioPlayer(9279): renaming /mnt/sdcard/tmprecording.3gp to /mnt/sdcard/Downloaded/sound.mp3 

09-08 15:06:11.565: E/AudioPlayer(9279): FAILED renaming /mnt/sdcard/tmprecording.3gp to /mnt/sdcard/Downloaded/sound.mp3 

09-08 15:06:11.565: V/MediaRecorderJNI(9279): release 
09-08 15:06:11.565: V/MediaRecorderJNI(9279): setMediaRecorder E: mr = null 
09-08 15:06:11.575: V/MediaRecorderJNI(9279): setMediaRecorder X 

09-08 15:06:11.575: W/PluginManager(9279): THREAD WARNING: exec() call to Media.release blocked the main thread for 19ms. Plugin should use CordovaInterface.getThreadPool(). 

09-08 15:06:11.585: D/CordovaLog(9279): file:///android_asset/www/js/test.js: Line 1628 : ==LOG== flag: sound.mp3 result: 3 
09-08 15:06:11.585: I/Web Console(9279): ==LOG== flag: sound.mp3 result: 3 at file:///android_asset/www/js/test.js:1628 
+2

Не могли бы вы предоставить некоторые из файлов, воспроизводящих медиа? – theannouncer

ответ

1

Я чувствую вашу боль. Я потратил много времени на прослушивание аудио и видео, чтобы работать на iOS и ANDROID в моем приложении PhoneGap ... почти со слезами, когда я работал. Как только я перешел на другую сторону, я сделал все, что мог, чтобы извлечь основные функциональные возможности в автономный набор файлов, чтобы я мог снова и снова использовать его повторно. Вы можете посмотреть и проверить, если вы хотите:

BTW - функциональность здесь действительно использует API PhoneGap медиа для аудио, когда это возможно. Дайте мне знать, если это вообще поможет.