AntMedia 本机接口问题

AntMedia Native Interface issues

我想为代号一实现此 AntMedia iOS 和 Android 本机接口:

import com.codename1.system.NativeInterface;
import com.codename1.ui.PeerComponent;

/**
 * @deprecated Native Interface, deprecated because you normally should use the
 * public API in the AntMediaClient class.
 */
public interface AntMediaNative extends NativeInterface {

    /**
     * Initializes the connection.
     *
     * @param serverURL is WebSocket url to connect (wss://...)
     * @param streamId is the stream id in the server to process
     * @param mode true means MODE_PUBLISH, false means MODE_PLAY
     * @param tokenId is one time token string
     * @return PeerComponent
     */
    public PeerComponent createPeer(String serverURL, String streamId, boolean mode, String tokenId);

    /**
     * Starts the streaming according to the mode.
     */
    public void startStream();

    /**
     * Stops the streaming.
     */
    public void stopStream();

    /**
     * Switches the cameras.
     */
    public void switchCamera();

    /**
     * Toggle microphone.
     *
     * @return microphone current status.
     */
    public boolean toggleMic();

    /**
     * Stops the video source.
     */
    public void stopVideoSource();

    /**
     * Starts or restarts the video source.
     */
    public void startVideoSource();

    /**
     * Get the error.
     *
     * @return error or null if not.
     */
    public String getError();

    /**
     * Camera open order.By default front camera is attempted to be opened at
     * first, if it is set to false, another camera that is not front will be
     * tried to be open.
     *
     * @param openFrontCamera if it is true, front camera will tried to be
     * opened, if it is false, another camera that is not front will be tried to
     * be opened
     */
    public void setOpenFrontCamera(boolean openFrontCamera);
}

我需要两个具体问题的帮助。

第一个问题是如何获取观看直播的PeerComponent。在本机 Android 和 iOS 代码中,我不明白在这种情况下我必须做什么。您能否用 iOS 和 Android 的示例代码回答我 returns 一个 PeerComponent?以下是 SDK 文档的链接,希望足以回答这个问题。

第二个问题是 iOS 的 SDK 是用 Swift 编写的:如何从必须用 [=29] 编写的本机接口调用 Swift 代码=]?您也可以在这里用代码示例回答我吗?

感谢您的支持。

这是两个SDK的文档:

Android SDK文档: https://github.com/ant-media/Ant-Media-Server/wiki/WebRTC-Android-SDK-Documentation

iOS SDK文档: https://github.com/ant-media/Ant-Media-Server/wiki/WebRTC-iOS-SDK-Documentation

当您在 IDE 中使用生成本机界面工具时,它会生成匹配的本机代码。该代码为每个操作系统生成本机 OS 方法,例如在 Android 的情况下, createPeer 方法将 return a View.

因此对于这种情况,您需要创建一个 org.webrtc.SurfaceViewRenderer 的实例并将其存储在 class 中(用于 init 的后续调用)然后 return 来自 createPeer 方法。