public async Task SendCommandMessageAsync(int streamId, AmfCommandMessage command) { var body = new byte[command.GetLength()]; command.Encode(body.AsSpan()); var header = new RtmpChunkHeader(RtmpChunkHeaderType.Type0, RtmpConstants.RtmpChannel_Invoke); var messageHeader = new RtmpMessageHeader(0, body.Length, RtmpMessageType.CommandAMF0, streamId); var message = new RtmpMessage(header, messageHeader, body); await _session.SendMessageAsync(message); }
public async Task SendResultAsync(object data) { var chunkHeader = new RtmpChunkHeader(RtmpChunkHeaderType.Type0, RtmpConstants.RtmpChannel_Invoke); var response = new AmfCommandMessage { Name = "_result", CommandObject = data }; var length = response.GetLength(); var memory = new byte[length]; response.Encode(memory); var messageHeader = new RtmpMessageHeader(0, length, RtmpMessageType.CommandAMF0, 0); var message = new RtmpMessage(chunkHeader, messageHeader, memory); await _session.SendMessageAsync(message); }