我想通过 MediaRouter 类将音频文件从我的 android 设备流式传输到另一个设备。据我了解,我需要

mediarouter.addCallback(MediaRouter.ROUTE_TYPE_LIVE_AUDIO, mCallback);

功能来监听连接的设备是否正在播放音频。但是,我不确定这一点。
我的问题是如何获取音频流?

最佳答案

如果您使用 AudioTrack 播放音频,则需要确保 streamType 与路线的 streamType 匹配。要获取路线的 streamType ,只需执行以下操作:

private final MediaRouter.Callback mMediaRouterCallback =
    new MediaRouter.Callback() {

        @Override
        public void onRouteSelected(MediaRouter router, MediaRouter.RouteInfo route) {
                Log.i(TAG, "streamType = " + route.getPlaybackStream());
        }
};

通常它是 AudioManager.STREAM_MUSIC 。因此,当您初始化 AudioTrack 时,请确保:
_audioTrack = new AudioTrack(
                AudioManager.STREAM_MUSIC,
                sampleRate,
                channelConfig,
                audioFormat,
                bufferSize,
                mode);

10-08 03:03