我正在开发一个应用程序,其中我将使用MediaCodec将来自服务器的视频/音频编码的字节通过同一网络上的套接字发送到接收器。
在接收器端,我已成功获取字节。现在,我想使用MediaCodec解码这些字节,并在SurfaceView或Some player上显示它们。
下面是接收字节的代码:
Thread serverThread = null;
startServer();
private void startServer() {
this.serverThread = new Thread(new SocketThread());
this.serverThread.start();
}
private class SocketThread implements Runnable {
@Override
public void run() {
Socket socket;
try {
serverSocket = new ServerSocket(SERVER_PORT);
} catch (IOException e) {
e.printStackTrace();
}
if (null != serverSocket) {
while (!Thread.currentThread().isInterrupted()) {
try {
socket = serverSocket.accept();
CommunicationThread commThread = new CommunicationThread(socket);
new Thread(commThread).start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class CommunicationThread implements Runnable {
InputStream in;
DataInputStream dis;
public CommunicationThread(Socket clientSocket) {
updateMessage("Server Started...");
}
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
byte[] data = new byte[512];
fos.write(data);
// in.read(data, 0, data.length);
} catch (Exception e) {
e.printStackTrace();
try {
fos.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
}
}
在byte []数据数组中成功接收了字节。
现在,我想使用MediaCodec解码这些字节并在SurfaceView或播放器上播放它们。
为此,我关注了以下链接,但未获得适当的了解:
Mediacodec, decode byte packet from server and render it on surface
我最后被困在这里。请提供一些信息,以便我进一步进行操作。