1

WebRTC を使用して、2 台の Android フォン間でデータを転送することができましたDataChannel

一方では、データを送信します。

boolean isBinaryFile = false;
File file = new File(path); // let's assume path is a .whatever file's path (txt, jpg, pdf..) 
ByteBuffer byteBuffer = ByteBuffer.wrap(convertFileToByteArray(file));
DataChannel.Buffer buf = new DataChannel.Buffer(byteBuffer, isBinaryFile); 
dataChannel.send(buf);

一方、このコールバックは、isBinaryFile値 に関係なく呼び出す必要があります。

public void onMessage( final DataChannel.Buffer buffer ){
    Log.e(TAG, "Incomming file on DataChannel");

    ByteBuffer data = buffer.data;
    byte[] bytes = new byte[ data.capacity() ];
    data.get(bytes);

    // If it's not a binary file (text)
    if( !buffer.binary ) {
        String strData = new String( bytes );
        Log.e(TAG, "Text file is : " + strData);
    } else {
        Log.e(TAG, "Received binary file ! :)");
    }
}

任意のファイルの場合、isBinaryFilefalseの場合、コールバックが呼び出され、テキストを印刷したり、ファイル (画像、pdf など) を再構築したりできます。

isBinaryFiletrue の場合、次のエラーが発生します。

Warning(rtpdataengine.cc:317): Not sending data because binary type is unsupported.

これを読んだ後、 を使用する必要があるように見えますがSCTP DataChannels、方法がわかりません!

4

1 に答える 1