Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将音频流从WebRTC路由到应用层 我有一个目标,从WebRTC转换现有的音频流。因此,我想将来自另一个应用程序的自定义噪声添加到已经工作的PeerConnection和本地流中。我的目标是,为Android创建这些更改,并构建java库。那么,是否可以这样做,甚至抛出更改本机WebRTC 另一个问题,关于使用WebRTC构建自定义本机更改。我想在WebRTC中添加我自己的功能。为此,我是否也应该更改建筑脚本或类型,以及如何才能做到这一点?关于这件事,你能提供一些建议吗?也许有一些文档,关于构建你自己的更改(以及下一次在其他系统中的使用,Android\iOS)_Java_Android_Java Native Interface_Webrtc - Fatal编程技术网

将音频流从WebRTC路由到应用层 我有一个目标,从WebRTC转换现有的音频流。因此,我想将来自另一个应用程序的自定义噪声添加到已经工作的PeerConnection和本地流中。我的目标是,为Android创建这些更改,并构建java库。那么,是否可以这样做,甚至抛出更改本机WebRTC 另一个问题,关于使用WebRTC构建自定义本机更改。我想在WebRTC中添加我自己的功能。为此,我是否也应该更改建筑脚本或类型,以及如何才能做到这一点?关于这件事,你能提供一些建议吗?也许有一些文档,关于构建你自己的更改(以及下一次在其他系统中的使用,Android\iOS)

将音频流从WebRTC路由到应用层 我有一个目标,从WebRTC转换现有的音频流。因此,我想将来自另一个应用程序的自定义噪声添加到已经工作的PeerConnection和本地流中。我的目标是,为Android创建这些更改,并构建java库。那么,是否可以这样做,甚至抛出更改本机WebRTC 另一个问题,关于使用WebRTC构建自定义本机更改。我想在WebRTC中添加我自己的功能。为此,我是否也应该更改建筑脚本或类型,以及如何才能做到这一点?关于这件事,你能提供一些建议吗?也许有一些文档,关于构建你自己的更改(以及下一次在其他系统中的使用,Android\iOS),java,android,java-native-interface,webrtc,Java,Android,Java Native Interface,Webrtc,更新 关于第1个问题,是否可以创建、抛出明确的WebRTC版本(无库定制)?例如,我们是否可以使用本地AudioStream对象进行操作,将其放入PeerConnection中 以及第2版的其他更新。我们是否可以更改一些WebRTC本机C代码,并继续使用depot tools脚本进行构建?或者我们也应该创建自己的脚本,用于生成.so和.jar库?那么安卓系统的变化呢。我们如何为新的.jar库构建JNI更改,以防原生C源代码发生某些更改?1)Webrtc libjingle仅使用android框架

更新

关于第1个问题,是否可以创建、抛出明确的WebRTC版本(无库定制)?例如,我们是否可以使用本地AudioStream对象进行操作,将其放入PeerConnection中

以及第2版的其他更新。我们是否可以更改一些WebRTC本机C代码,并继续使用depot tools脚本进行构建?或者我们也应该创建自己的脚本,用于生成.so和.jar库?那么安卓系统的变化呢。我们如何为新的.jar库构建JNI更改,以防原生C源代码发生某些更改?

1)Webrtc libjingle仅使用android框架捕获音频/视频数据。对于音频,它使用android AudioRecord API从手机麦克风录制音频并将其传递给本机,本机以适当的格式对数据进行编码并将其传递给远程端。现在,我将在代码中为您提供一些提示,比如您可以在何处寻找引入自己的音频,而不是使用手机麦克风。检查“WebRTCAdioRecord.java”,我们使用AudioRecord框架捕获麦克风数据,如下所示:

  int bytesRead = audioRecord.read(byteBuffer, byteBuffer.capacity()); 
此byteBuffer被传递到本机进行音频编码并发送到远程端:

nativeCacheDirectBufferAddress(byteBuffer, nativeAudioRecord);
所以,你们所需要做的就是把你们的音频数据复制到byteBuffer循环中,而不是从麦克风中读取

2) 您可以构建前面提到的webrtc源代码。为了将所有步骤汇总在一起,您可以使用以下脚本:

#!/bin/sh
set -e
export GYP_DEFINES="OS=android"
if [ -f .gclient ];
then
  echo "gclient exists so go ahead"
  cd src
else
  fetch --nohooks webrtc_android
  cd src
  git fetch --tags
  git checkout branch-heads/55  
  gclient sync
  ./build/install-build-deps.sh 
  ./build/install-build-deps-android.sh
  gclient sync
  gn gen out/x86  --args='target_os="android" target_cpu="x86" is_debug=false dcheck_always_on=true symbol_level=1 is_component_build=false'
  gn gen out/x64  --args='target_os="android" target_cpu="x64" is_debug=false dcheck_always_on=true symbol_level=1 is_component_build=false'
  gn gen out/arm64 --args='target_os="android" target_cpu="arm64" is_debug=false dcheck_always_on=true symbol_level=1 is_component_build=false'
  gn gen out/armv7 --args='target_os="android" target_cpu="arm" is_debug=false dcheck_always_on=true symbol_level=1 is_component_build=false' 
fi
ninja -C out/arm64
ninja -C out/armv7
ninja -C out/x86
ninja -C out/x64

此脚本将为所有架构构建android libjingle v55,这样您就可以在设备上以及模拟器上使用二进制文件。

不错的一点,关于第一个。但第二种解释是有线的。我知道如何建立WebRTC。我的意思是我可以在WebRTC的范围内构建我自己的更改,我需要如何更改Android的JNI包装器,等等……我理解这些问题不能完全用语言来回答。但是尽可能的多。