-1

Samsung Chord SDK に基づいてアプリを開発しています。ビデオの現在の位置を で送信する必要がありsendDataToAll()、 でデータを受け取りますbyte[][]。私の問題は、現在の位置 ( int) を に型キャストして送信しようとするとbyteの値 ( byte) が返されることです。intの負の値をに変換しようとしてOnDataRecived()も、同じ負の値のままです。この問題を解決するにはどうすればよいですか?

送信コード:

//for sending the message
int currPos = mVideoView.getCurrentPosition();
logView.append("Duration sent= " + currPos);
//Integer resume = -3;

Byte msgByte = new Byte("-3");
byte [] [] pay = new byte [1] [2];
pay[0] [0] = msgByte;

Byte msgByte2 = new Byte((byte) currPos);
logView.append("Duration sent= " + msgByte2);
pay[0] [1] = msgByte2;
mChordchannel.sendDataToAll("Integer", pay);

// im sending -3 so that im checking that the user pressed the resume .

受信コード:

//on receiving
else if(intRec == -3) {
    Byte pos = rec[0] [1];
    int posn;
    posn = pos.intValue();
    logView.append("Duration received= " + posn);
    mVideoView.seekTo(posn);
    mVideoView.start();
}  
4

1 に答える 1

0

これらのステートメントでタイプ Byte を byte に変換しています

    pay[0] [0] = msgByte;
    pay[0] [1] = msgByte2;

上記の代わりにこれを試してください

   pay[0] [0] = msgByte.byteValue();
   pay[0] [1] = msgByte2.byteValue();

これが私が想定した問題の原因です。

于 2014-05-05T11:53:37.887 に答える