小编zin*_*yar的帖子

webRTC java桌面附加媒体轨道并正确使用它们

我正在尝试使用此webRTC Java 本机接口实现在两个 Java 应用程序之间构建对等音频传输,并使用带有套接字的简单 nodejs 服务器来执行信令,尽管无法获取音轨,但我可以建立连接工作,尝试添加轨道,添加收发器,将 audioDeviceModule 传递给 PeerConnectionFactory,但没有任何效果,我只想从呼叫者附加麦克风轨道并让它在另一侧正常播放。

我目前尝试连接音频:

    AudioDeviceModule mod = new AudioDeviceModule();
    mod.setRecordingDevice(MediaDevices.getAudioCaptureDevices().get(1));
    mod.initRecording();
    mod.setPlayoutDevice(MediaDevices.getAudioRenderDevices().get(1));
    mod.initPlayout();
    PeerConnectionFactory factory = new PeerConnectionFactory(mod);
    RTCPeerConnection connection = factory.createPeerConnection(config, observer);
    AudioOptions audioOptions = new AudioOptions();
    AudioSource audioSource = factory.createAudioSource(audioOptions);
    AudioTrack audioTrack = factory.createAudioTrack("audioTrack", audioSource);
    connection.addTrack(audioTrack, List.of("stream"));
Run Code Online (Sandbox Code Playgroud)

他们的 repo 上提供的演示很复杂,它没有帮助我理解 API,一个简单的“入门”示例会有所帮助。

到目前为止我所拥有的:结构是基本的 我正在运行两个 java 实例,通过套接字从第一个实例向服务器发送报价,服务器将其转发到第二个实例,后者设置远程描述并发送答案到服务器,服务器将其转发给第一个实例,该实例设置远程描述

呼叫者:

connection.createOffer(options, new CreateSessionDescriptionObserver() {
    @Override
    public void onSuccess(RTCSessionDescription description) {
        connection.setLocalDescription(description, new SetSessionDescriptionObserver() {
            @Override
            public void onSuccess() {
                System.out.println("caller ready");
            }

            @Override …
Run Code Online (Sandbox Code Playgroud)

java desktop-application webrtc

8
推荐指数
0
解决办法
215
查看次数

透明图像中的javafx鼠标事件

如果您在透明像素上单击或拖动,JavaFx ImageView 不会触发鼠标事件,例如按下或拖动,是否有办法解决此问题并从透明区域检测鼠标事件?

我有这张图片 在此处输入图片说明

我添加到这个非常简单的 JavaFX 场景中 在此处输入图片说明

使用名为 view 的 ImageView,我想用鼠标拖动事件移动它,所以我写了这段代码

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application{

    double initMx, initMy,initX, initY;

    @Override
    public void start(Stage ps) throws Exception {
        StackPane pane = new StackPane();
        Image im = new Image("0.png");
        ImageView view = new ImageView(im);
        double fact = im.getWidth() / im.getHeight();

        view.setFitHeight(300);
        view.setFitWidth(300 * fact);

        view.setOnMousePressed(e->{
            initX = view.getTranslateX();
            initY = view.getTranslateY();
            initMx = e.getSceneX();
            initMy = e.getSceneY();
        });

        view.setOnMouseDragged(e->{ …
Run Code Online (Sandbox Code Playgroud)

javafx

2
推荐指数
1
解决办法
1115
查看次数

标签 统计

desktop-application ×1

java ×1

javafx ×1

webrtc ×1