【问题标题】:Get amplitude of audio with its source/object/streamType使用其源/对象/流类型获取音频的幅度
【发布时间】:2017-07-18 06:51:25
【问题描述】:

谁能帮我找到在应用程序中找到不同音频播放器振幅的任何方法?我需要知道我的应用中 videoCall 的音频幅度。

在我的应用中的示例我有一个 videoPlayer (youtube) 和 videoCall 功能。因此,当我收到 videoCall 时,当有人在 videoCall 上讲话时,我需要减慢/停止 videoPlayer 的声音。有什么办法可以找到吗?

我找到了一种获取手机音频播放器振幅的方法,但这提供了在应用程序中播放的所有类型音频的振幅,而无需发送任何源标识符或流类型(​​MUSIC_STREAMCALL_STREAM)或我使用的任何不同的东西可以识别给定振幅的来源,例如播放器或视频通话。

这只有在我在 Visualizer(audioSessionId) 中提供 AudioPlayer 的 audioSessionId 时才有帮助,但由于 ThirdPartySDK,我无法获取任何播放器(videoCall、youtube)的 audioSessionId。

private void createVisualizer(){
    int rate = Visualizer.getMaxCaptureRate();
    Visualizer audioOutput = new Visualizer(0); //  get output audio stream
    audioOutput.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
        @Override
        public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
            float intensity = ((float) waveform[0] + 128f) / 256;
            Log.d("visualizer = ", "visualizer = "+visualizer+ "visualizer = "+String.valueOf(intensity));
        }

        @Override
        public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {

        }
    },rate , true, false); // waveform not freq data
    Log.d("rate", String.valueOf(Visualizer.getMaxCaptureRate()));
    audioOutput.setEnabled(true);
}

任何建议都会有所帮助,在此先感谢。

【问题讨论】:

  • 为什么有人给-1分?
  • 这个问题表明这是多么困难:- stackoverflow.com/questions/31616084/…
  • @NehaK 你想完成什么?两个玩家都是你的应用程序的一部分吗?或者您确实在谈论其他应用程序?
  • 不,我想让他们在一个应用程序中,两个玩家都在一个应用程序中
  • 我认为 Android 有能力做到这一点。我每次在手机上播放音乐时都会遇到这种情况,然后突然一条短信进来。音乐音频降低了一点,所以你可以听到短信通知。但我认为你不能从应用程序中做到这一点。我认为 Android 框架会自动为您执行此操作。不过,我很感兴趣你是如何解决这个问题的。 +1

标签: android audio-streaming android-video-player


【解决方案1】:

我找到了解决方案,我用于 VideoCall 的 SDK 提供了所有用户的语音级别,所以我用它来实现我的功能。

我发现的其他解决方案是使用 MediaRecorder,它提供不同来源的声音级别,例如 - MIC、VOICE_CALL 等。但由于 SDK 已经在内部使用 MediaRecorder 并且 android 不允许同时使用 2 个 MediaRecorder 实例时间所以它对我不起作用。

android: Detect sound level

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2011-08-18
    • 1970-01-01
    相关资源
    最近更新 更多