[*] 每日优化
This commit is contained in:
@@ -287,7 +287,7 @@ public class MediaService extends Service {
|
||||
Log.d(MediaService.class.getSimpleName(), "当前蓝牙是否打开:" + audioManager.isBluetoothScoOn());
|
||||
// Log.d(MediaService.class.getSimpleName(), "当前耳机是否打开:" + audioManager.isWiredHeadsetOn());
|
||||
Log.d(MediaService.class.getSimpleName(), "当前扬声器是否打开:" + audioManager.isSpeakerphoneOn());
|
||||
audioManager.setStreamVolume(AudioManager.MODE_IN_CALL, audioManager.getStreamMaxVolume(AudioManager.MODE_IN_CALL), AudioManager.FLAG_PLAY_SOUND);
|
||||
audioManager.setStreamVolume(AudioManager.MODE_IN_CALL, audioManager.getStreamMaxVolume(AudioManager.MODE_IN_CALL) / 2 + 1, AudioManager.FLAG_PLAY_SOUND);
|
||||
// audioManager.setStreamVolume(AudioManager.MODE_IN_COMMUNICATION, audioManager.getStreamMaxVolume(AudioManager.MODE_IN_COMMUNICATION), AudioManager.FLAG_PLAY_SOUND);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,13 +6,19 @@ import com.acgist.taoyao.media.signal.ITaoyao;
|
||||
|
||||
/**
|
||||
* 房间终端
|
||||
* SDK + NDK + Mediasoup实现视频房间会话
|
||||
* SDK + NDK + Mediasoup实现视频房间
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
public class RoomClient extends Client {
|
||||
|
||||
public RoomClient(String name, String clientId, ITaoyao taoyao, Handler mainHandler) {
|
||||
/**
|
||||
* @param name 终端名称
|
||||
* @param clientId 终端ID
|
||||
* @param taoyao 信令
|
||||
* @param mainHandler MainHandler
|
||||
*/
|
||||
protected RoomClient(String name, String clientId, ITaoyao taoyao, Handler mainHandler) {
|
||||
super(name, clientId, taoyao, mainHandler);
|
||||
}
|
||||
|
||||
|
||||
@@ -795,8 +795,10 @@ class Taoyao {
|
||||
rtcpMux: false,
|
||||
comedia: false
|
||||
};
|
||||
let videoConsumerId;
|
||||
let audioConsumer;
|
||||
let videoConsumer;
|
||||
let audioConsumerId;
|
||||
let videoConsumerId;
|
||||
let audioTransportId;
|
||||
let videoTransportId;
|
||||
let audioRtpParameters;
|
||||
@@ -816,14 +818,13 @@ class Taoyao {
|
||||
port : audioPort,
|
||||
rtcpPort: audioPort
|
||||
});
|
||||
const audioConsumer = await audioTransport.consume({
|
||||
audioConsumer = await audioTransport.consume({
|
||||
producerId: audioProducerId,
|
||||
rtpCapabilities,
|
||||
paused: true
|
||||
});
|
||||
audioConsumerId = audioConsumer.id;
|
||||
audioRtpParameters = audioConsumer.rtpParameters;
|
||||
await audioConsumer.resume();
|
||||
audioConsumer.clientId = clientId;
|
||||
audioConsumer.streamId = audioStreamId;
|
||||
room.consumers.set(audioConsumer.id, audioConsumer);
|
||||
@@ -848,14 +849,13 @@ class Taoyao {
|
||||
port : videoPort,
|
||||
rtcpPort: videoPort
|
||||
});
|
||||
const videoConsumer = await videoTransport.consume({
|
||||
videoConsumer = await videoTransport.consume({
|
||||
producerId: videoProducerId,
|
||||
rtpCapabilities,
|
||||
paused: true
|
||||
});
|
||||
videoConsumerId = videoConsumer.id;
|
||||
videoRtpParameters = videoConsumer.rtpParameters;
|
||||
await videoConsumer.resume();
|
||||
videoConsumer.clientId = clientId;
|
||||
videoConsumer.streamId = videoStreamId;
|
||||
room.consumers.set(videoConsumer.id, videoConsumer);
|
||||
@@ -865,6 +865,12 @@ class Taoyao {
|
||||
});
|
||||
console.log("controlServerRecord video:", videoTransportId, videoConsumerId, videoTransport.tuple, videoRtpParameters);
|
||||
}
|
||||
if(audioConsumer) {
|
||||
await audioConsumer.resume();
|
||||
}
|
||||
if(videoConsumer) {
|
||||
await videoConsumer.resume();
|
||||
}
|
||||
message.body = {
|
||||
roomId : roomId,
|
||||
audioConsumerId : audioConsumerId,
|
||||
|
||||
@@ -238,6 +238,7 @@ taoyao:
|
||||
m=video %d RTP/AVP 101
|
||||
c=IN IP4 127.0.0.1
|
||||
a=rtpmap:101 VP8/90000
|
||||
# a=fmtp:101 packetization-mode=1
|
||||
# 录像命令
|
||||
record: ffmpeg -protocol_whitelist "file,rtp,udp" -y -i %s %s
|
||||
# 预览命令
|
||||
|
||||
@@ -82,6 +82,10 @@ public class RtpTest {
|
||||
// {"header":{"v":"1.0.0","id":1215310510002009,"signal":"room::enter"},"body":{"roomId":"8260e615-3081-4bfc-96a8-574f4dd780d9"}}
|
||||
// {"header":{"v":"1.0.0","id":1215310510002010,"signal":"media::transport::plain"},"body":{"roomId":"8260e615-3081-4bfc-96a8-574f4dd780d9","rtcpMux":false,"comedia":true}}
|
||||
// {"header":{"v":"1.0.0","id":1215375110006012,"signal":"media::produce"},"body":{"kind":"video","roomId":"8260e615-3081-4bfc-96a8-574f4dd780d9","transportId":"14dc9307-bf9c-4442-a9ad-ce6a97623ef4","appData":{},"rtpParameters":{"codecs":[{"mimeType":"video/vp8","clockRate":90000,"payloadType":102,"rtcpFeedback":[]}],"encodings":[{"ssrc":123123}]}}}
|
||||
// 音频转为PCM
|
||||
// ffmpeg.exe -i .\a.m4a -f s16le a.pcm
|
||||
// ffmpeg.exe -i .\a.m4a -f s16le -ac 2 -ar 8000 a.pcm
|
||||
// ffplay.exe -ar 48000 -ac 2 -f s16le -i a.pcm
|
||||
// ffmpeg不支持rtcpMux
|
||||
// ffmpeg -re -i video.mp4 -c:v vp8 -map 0:0 -f tee "[select=v:f=rtp:ssrc=123123:payload_type=102]rtp://192.168.1.110:40793?rtcpport=47218"
|
||||
// ffmpeg -re -i video.mp4 -c:v libvpx -map 0:0 -f tee "[select=v:f=rtp:ssrc=123123:payload_type=102]rtp://192.168.1.110:40793?rtcpport=47218"
|
||||
|
||||
Reference in New Issue
Block a user