声音不适用于使用Android Things的覆盆子pi

时间:2017-04-19 06:04:53

标签: android audio raspberry-pi hdmi android-things

最近我们在覆盆子Pi 3上闪现了Android Things,除声音外,一切正常。 我尝试连接3.5mm插孔耳机和hdmi屏幕以及不同的组合,如:

  1. 只有没有hdmi显示屏的耳机。
  2. 仅限hdmi监视器。
  3. 耳机连接到raspberry pi 3.5音频插孔和hdmi显示屏也已连接。
  4. 我使用adb命令尝试了所有这些。例如:

    adb shell am start -a android.intent.action.VIEW -d file:///sdcard/music/sample.mp3 -t audio/mp3
    

    或者,以后使用的代码如下:

    MediaPlayer mPlayer = MediaPlayer.create(this.getBaseContext(), R.raw.humma);
    mPlayer.setOnErrorListener(this);
    mPlayer.start();
    

    但在这些条件中,声音都有效。

    以下是控制台日志:

    OMXClient: MuxOMX ctor
    04-24 06:08:15.256   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.258   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.259   157   157 I OMXMaster: makeComponentInstance(OMX.google.mp3.decoder) in mediacodec process
    04-24 06:08:15.401   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.402   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.403   157  1277 I OMXMaster: makeComponentInstance(OMX.google.amrnb.decoder) in mediacodec process
    04-24 06:08:15.423   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.423   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.424   157  1277 I OMXMaster: makeComponentInstance(OMX.google.amrwb.decoder) in mediacodec process
    04-24 06:08:15.433   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.434   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.435   157  1277 I OMXMaster: makeComponentInstance(OMX.google.aac.decoder) in mediacodec process
    04-24 06:08:15.462   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.463   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.463   157   206 I OMXMaster: makeComponentInstance(OMX.google.g711.alaw.decoder) in mediacodec process
    04-24 06:08:15.593   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.594   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.594   157   206 I OMXMaster: makeComponentInstance(OMX.google.g711.mlaw.decoder) in mediacodec process
    04-24 06:08:15.723   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.724   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.724   157   206 I OMXMaster: makeComponentInstance(OMX.google.vorbis.decoder) in mediacodec process
    04-24 06:08:15.853   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.854   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.854   157   206 I OMXMaster: makeComponentInstance(OMX.google.opus.decoder) in mediacodec process
    04-24 06:08:15.984   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.985   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.985   157   206 I OMXMaster: makeComponentInstance(OMX.google.raw.decoder) in mediacodec process
    04-24 06:08:15.997   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:15.998   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:15.998   157   206 I OMXMaster: makeComponentInstance(OMX.google.aac.encoder) in mediacodec process
    04-24 06:08:16.025   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.025   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.026   157  1278 I OMXMaster: makeComponentInstance(OMX.google.amrnb.encoder) in mediacodec process
    04-24 06:08:16.042   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.042   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.043   157  1278 I OMXMaster: makeComponentInstance(OMX.google.amrwb.encoder) in mediacodec process
    04-24 06:08:16.065   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.066   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.066   157  1278 I OMXMaster: makeComponentInstance(OMX.google.flac.encoder) in mediacodec process
    04-24 06:08:16.167  1246  1257 I art     : Background partial concurrent mark sweep GC freed 13776(3MB) AllocSpace objects, 18(360KB) LOS objects, 39% free, 2MB/3MB, paused 969us total 101.384ms
    04-24 06:08:16.213   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.214   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.215   157  1278 I OMXMaster: makeComponentInstance(OMX.google.gsm.decoder) in mediacodec process
    04-24 06:08:16.350   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.351   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.352   157   206 I OMXMaster: makeComponentInstance(OMX.google.mpeg4.decoder) in mediacodec process
    04-24 06:08:16.391  1246  1246 I Choreographer: Skipped 54 frames!  The application may be doing too much work on its main thread.
    04-24 06:08:16.464   409   431 I ActivityManager: Displayed schneider_electric.com.mqttclient/.MainActivity: +23s558ms
    04-24 06:08:16.485   409   471 I WindowManager: Destroying surface Surface(name=com.android.iotlauncher/com.android.iotlauncher.IoTLauncher) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.AppWindowToken.destroySurfaces:363 com.android.server.wm.AppWindowToken.notifyAppStopped:389 com.android.server.wm.WindowManagerService.notifyAppStopped:4456 com.android.server.am.ActivityStack.activityStoppedLocked:1252 com.android.server.am.ActivityManagerService.activityStopped:6902 
    04-24 06:08:16.500   157  1277 E OMXNodeInstance: getExtensionIndex(9d000f:google.mpeg4.decoder, OMX.google.android.index.configureVideoTunnelMode) ERROR: UnsupportedIndex(0x8000101a)
    04-24 06:08:16.500   157   157 W OMXNodeInstance: [9d000f:google.mpeg4.decoder] component does not support metadata mode; using fallback
    04-24 06:08:16.505   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.506   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.506   157   157 I OMXMaster: makeComponentInstance(OMX.google.h263.decoder) in mediacodec process
    04-24 06:08:16.634   157  1277 E OMXNodeInstance: getExtensionIndex(9d0010:google.h263.decoder, OMX.google.android.index.configureVideoTunnelMode) ERROR: UnsupportedIndex(0x8000101a)
    04-24 06:08:16.634   157  1277 W OMXNodeInstance: [9d0010:google.h263.decoder] component does not support metadata mode; using fallback
    04-24 06:08:16.641   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.641   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.643   157  1277 I OMXMaster: makeComponentInstance(OMX.google.h264.decoder) in mediacodec process
    04-24 06:08:16.720   409   431 I WindowManager: Destroying surface Surface(name=Starting schneider_electric.com.mqttclient) called by com.android.server.wm.WindowStateAnimator.destroySurface:2014 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:881 com.android.server.wm.WindowState.destroyOrSaveSurface:2073 com.android.server.wm.AppWindowToken.destroySurfaces:363 com.android.server.wm.WindowStateAnimator.finishExit:565 com.android.server.wm.WindowStateAnimator.stepAnimationLocked:491 com.android.server.wm.WindowAnimator.updateWindowsLocked:303 com.android.server.wm.WindowAnimator.animateLocked:704 
    04-24 06:08:16.788   160  1273 W ACodec  : [OMX.google.h264.decoder] stopping checking profiles after 32: 2/8000
    04-24 06:08:16.789   157   206 E OMXNodeInstance: getExtensionIndex(9d0011:google.h264.decoder, OMX.google.android.index.configureVideoTunnelMode) ERROR: UnsupportedIndex(0x8000101a)
    04-24 06:08:16.789   157  1277 W OMXNodeInstance: [9d0011:google.h264.decoder] component does not support metadata mode; using fallback
    04-24 06:08:16.796   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.797   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.797   157  1277 I OMXMaster: makeComponentInstance(OMX.google.hevc.decoder) in mediacodec process
    04-24 06:08:16.943   157  1277 E OMXNodeInstance: getExtensionIndex(9d0012:google.hevc.decoder, OMX.google.android.index.configureVideoTunnelMode) ERROR: UnsupportedIndex(0x8000101a)
    04-24 06:08:16.943   157   157 W OMXNodeInstance: [9d0012:google.hevc.decoder] component does not support metadata mode; using fallback
    04-24 06:08:16.949   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:16.950   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:16.950   157   157 I OMXMaster: makeComponentInstance(OMX.google.vp8.decoder) in mediacodec process
    04-24 06:08:17.078   157  1277 E OMXNodeInstance: getExtensionIndex(9d0013:google.vp8.decoder, OMX.google.android.index.configureVideoTunnelMode) ERROR: UnsupportedIndex(0x8000101a)
    04-24 06:08:17.079   157  1277 W OMXNodeInstance: [9d0013:google.vp8.decoder] component does not support metadata mode; using fallback
    04-24 06:08:17.084   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:17.084   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:17.085   157  1277 I OMXMaster: makeComponentInstance(OMX.google.vp9.decoder) in mediacodec process
    04-24 06:08:17.177  1246  1308 D AlarmPingSender: Register alarmreceiver to MqttServiceMqttService.pingSender.02:00:00:00:00:00-pub
    04-24 06:08:17.184  1246  1308 D AlarmPingSender: Schedule next alarm at 1493014157183
    04-24 06:08:17.186  1246  1308 D AlarmPingSender: Alarm scheule using setExactAndAllowWhileIdle, next: 60000
    04-24 06:08:17.219   157  1278 E OMXNodeInstance: getExtensionIndex(9d0014:google.vp9.decoder, OMX.google.android.index.configureVideoTunnelMode) ERROR: UnsupportedIndex(0x8000101a)
    04-24 06:08:17.219   157   157 W OMXNodeInstance: [9d0014:google.vp9.decoder] component does not support metadata mode; using fallback
    04-24 06:08:17.225   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:17.227   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:17.227   157   157 I OMXMaster: makeComponentInstance(OMX.google.h263.encoder) in mediacodec process
    04-24 06:08:17.365   157   157 I SoftMPEG4Encoder: Construct SoftMPEG4Encoder
    04-24 06:08:17.369   160  1273 W ACodec  : do not know color format 0x7f000789 = 2130708361
    04-24 06:08:17.370   157  1277 E OMXNodeInstance: getConfig(9d0015:google.h263.encoder, ConfigAndroidIntraRefresh(0x6f60000a)) ERROR: Undefined(0x80001001)
    04-24 06:08:17.375   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:17.376   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:17.376   157   157 I OMXMaster: makeComponentInstance(OMX.google.h264.encoder) in mediacodec process
    04-24 06:08:17.514   160  1273 W ACodec  : do not know color format 0x7f000789 = 2130708361
    04-24 06:08:17.519   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:17.520   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:17.520   157  1278 I OMXMaster: makeComponentInstance(OMX.google.mpeg4.encoder) in mediacodec process
    04-24 06:08:17.641   157  1278 I SoftMPEG4Encoder: Construct SoftMPEG4Encoder
    04-24 06:08:17.645   160  1273 W ACodec  : do not know color format 0x7f000789 = 2130708361
    04-24 06:08:17.646   157  1277 E OMXNodeInstance: getConfig(9d0017:google.mpeg4.encoder, ConfigAndroidIntraRefresh(0x6f60000a)) ERROR: Undefined(0x80001001)
    04-24 06:08:17.651   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:17.652   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:17.652   157   206 I OMXMaster: makeComponentInstance(OMX.google.vp8.encoder) in mediacodec process
    04-24 06:08:17.786   160  1273 W ACodec  : do not know color format 0x7f000789 = 2130708361
    04-24 06:08:17.787   157  1277 E OMXNodeInstance: getConfig(9d0018:google.vp8.encoder, ConfigAndroidIntraRefresh(0x6f60000a)) ERROR: Undefined(0x80001001)
    04-24 06:08:17.792   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:17.792   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:17.792   160  1273 W MediaCodecList: unable to open media codecs configuration xml file: /etc/media_codecs_performance.xml
    04-24 06:08:17.793   160  1273 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:17.794   160  1273 I OMXClient: MuxOMX ctor
    04-24 06:08:17.799   160  1273 W MediaCodecList: unable to open media codecs configuration xml file: /data/misc/media/media_codecs_profiling_results.xml
    04-24 06:08:17.800   160  1274 I MediaPlayerService: MediaPlayerService::getOMX
    04-24 06:08:17.801   160  1274 I OMXClient: MuxOMX ctor
    04-24 06:08:17.801   157  1277 I OMXMaster: makeComponentInstance(OMX.google.mp3.decoder) in mediacodec process
    04-24 06:08:17.918   157  1278 E OMXNodeInstance: setConfig(9d0019:google.mp3.decoder, ConfigPriority(0x6f800002)) ERROR: Undefined(0x80001001)
    04-24 06:08:17.918   160  1274 I ACodec  : codec does not support config priority (err -2147483648)
    04-24 06:08:17.922   160  1274 I MediaCodec: MediaCodec will operate in async mode
    04-24 06:08:17.946   160  1272 D AudioTrack: Client defaulted notificationFrames to 7520 for frameCount 22560
    04-24 06:08:17.949   160  1267 D NuPlayerDriver: notifyListener_l(0xa810c000), (6, 0, 0), loop setting(0, 0)
    04-24 06:08:41.720   170   170 I update_engine: [0424/060841:INFO:update_manager-inl.h(52)] ChromeOSPolicy::UpdateCheckAllowed: START
    04-24 06:08:41.721   170   170 I update_engine: [0424/060841:INFO:chromeos_policy.cc(322)] Allowing update check.
    

    请帮帮我。

2 个答案:

答案 0 :(得分:1)

adb shell am start -a android.intent.action.VIEW

告诉Android用动作VIEW向“查看mp3”发出意图。 AndroidThings与Android AOSP不同 - 它没有任何内置应用程序。因此,它没有可以VIEW播放MP3的应用程序。

enter image description here

要在自己的应用程序中播放mp3,您需要确保该文件与系统兼容。 See here for supported media formats

如果没问题,那么您可以使用正确的代码来播放媒体文件(more info here)。然后你应该检查日志,看它是否在播放。

答案 1 :(得分:0)

我怀疑它与以下带有音频管理的API有关:https://developer.android.com/things/sdk/drivers/audio.html