fix:(对讲铃声)调整路由页面昵称;调整铃声播放逻辑
This commit is contained in:
parent
ceb889c3a3
commit
c0b2114683
@ -516,7 +516,7 @@ abstract class Routers {
|
||||
static const String doubleLockLinkPage = '/doubleLockLinkPage'; //双锁联动
|
||||
static const String starChartPage = '/starChartPage'; //星图
|
||||
static const String starChartTalkView = '/starChartTalkView'; //星图对讲页面
|
||||
static const String h264WebView = '/h264WebView'; //星图对讲页面
|
||||
static const String h264View = '/h264View'; //星图对讲页面
|
||||
static const String imageTransmissionView =
|
||||
'/imageTransmissionView'; //星图对讲页面(图传)
|
||||
static const String permissionGuidancePage =
|
||||
@ -1192,7 +1192,7 @@ abstract class AppRouters {
|
||||
GetPage<dynamic>(
|
||||
name: Routers.starChartTalkView, page: () => const TalkViewPage()),
|
||||
GetPage<dynamic>(
|
||||
name: Routers.h264WebView, page: () => TalkViewNativeDecodePage()),
|
||||
name: Routers.h264View, page: () => TalkViewNativeDecodePage()),
|
||||
// 插件播放页面
|
||||
GetPage<dynamic>(
|
||||
name: Routers.imageTransmissionView,
|
||||
@ -1202,6 +1202,6 @@ abstract class AppRouters {
|
||||
name: Routers.permissionGuidancePage,
|
||||
page: () => PermissionGuidancePage()),
|
||||
// 插件播放页面
|
||||
// GetPage<dynamic>(name: Routers.h264WebView, page: () => H264WebView()), // webview播放页面
|
||||
// GetPage<dynamic>(name: Routers.h264View, page: () => H264WebView()), // webview播放页面
|
||||
];
|
||||
}
|
||||
|
||||
@ -16,14 +16,22 @@ class AudioPlayerManager {
|
||||
|
||||
// 单例的 AudioPlayer 实例
|
||||
final AudioPlayer _audioPlayer = AudioPlayer();
|
||||
// 播放状态,防止重复播放
|
||||
bool _isPlaying = false;
|
||||
|
||||
// 播放铃声
|
||||
Future<void> playRingtone() async {
|
||||
if (_isPlaying) {
|
||||
log(text: 'Ringtone is already playing.');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await _audioPlayer.setReleaseMode(ReleaseMode.loop);
|
||||
await _audioPlayer.play(AssetSource('ring1.mp3'));
|
||||
_isPlaying = true;
|
||||
log(text: 'Ringtone started playing.');
|
||||
} catch (e) {
|
||||
_isPlaying = false;
|
||||
log(text: 'Error playing ringtone: $e');
|
||||
}
|
||||
}
|
||||
@ -31,12 +39,12 @@ class AudioPlayerManager {
|
||||
// 停止播放铃声
|
||||
Future<void> stopRingtone() async {
|
||||
try {
|
||||
// 不需要设置 ReleaseMode,在停止时保持默认即可
|
||||
_audioPlayer.setReleaseMode(ReleaseMode.loop);
|
||||
await _audioPlayer.stop();
|
||||
|
||||
_isPlaying = false;
|
||||
log(text: 'Ringtone stopped.');
|
||||
} catch (e) {
|
||||
_isPlaying = false;
|
||||
log(text: 'Error stopping ringtone: $e');
|
||||
}
|
||||
}
|
||||
@ -45,8 +53,10 @@ class AudioPlayerManager {
|
||||
Future<void> pauseRingtone() async {
|
||||
try {
|
||||
await _audioPlayer.pause();
|
||||
_isPlaying = false;
|
||||
log(text: 'Ringtone paused.');
|
||||
} catch (e) {
|
||||
_isPlaying = false;
|
||||
log(text: 'Error pausing ringtone: $e');
|
||||
}
|
||||
}
|
||||
@ -54,8 +64,10 @@ class AudioPlayerManager {
|
||||
Future<void> resumeRingtone() async {
|
||||
try {
|
||||
await _audioPlayer.resume();
|
||||
_isPlaying = true;
|
||||
log(text: 'Ringtone resumed.');
|
||||
} catch (e) {
|
||||
_isPlaying = false;
|
||||
log(text: 'Error resuming ringtone: $e');
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,9 +41,6 @@ class UdpTalkExpectHandler extends ScpMessageBaseHandle
|
||||
final TalkExpectResp talkExpectResp = scpMessage.Payload;
|
||||
|
||||
if (talkExpectResp != null) {
|
||||
// 播放铃声
|
||||
//test:使用自定义铃声
|
||||
playRingtone();
|
||||
// print('收到预期音视频数据回复,scpMessage:$scpMessage');
|
||||
// 停止发送预期数据的定时器
|
||||
startChartManage.stopTalkExpectMessageTimer();
|
||||
@ -66,6 +63,8 @@ class UdpTalkExpectHandler extends ScpMessageBaseHandle
|
||||
talkStatus.setAnsweredSuccessfully();
|
||||
// 主动呼叫时需要启动ping
|
||||
startChartManage.startTalkPingMessageTimer();
|
||||
} else if (talkStatus.status != TalkStatus.answeredSuccessfully) {
|
||||
playRingtone();
|
||||
}
|
||||
AppLog.log(
|
||||
'视频画面需要旋转:${talkExpectResp.rotate},画面宽高:${talkExpectResp.width}-${talkExpectResp.height}');
|
||||
@ -97,6 +96,7 @@ class UdpTalkExpectHandler extends ScpMessageBaseHandle
|
||||
talkExpectResp.width == 640 &&
|
||||
talkExpectResp.height == 480)) {
|
||||
Get.toNamed(Routers.imageTransmissionView);
|
||||
|
||||
return;
|
||||
}
|
||||
if (startChartManage
|
||||
@ -104,7 +104,7 @@ class UdpTalkExpectHandler extends ScpMessageBaseHandle
|
||||
.videoType
|
||||
.contains(VideoTypeE.H264)) {
|
||||
Get.toNamed(
|
||||
Routers.h264WebView,
|
||||
Routers.h264View,
|
||||
);
|
||||
} else {
|
||||
Get.toNamed(
|
||||
|
||||
@ -430,7 +430,7 @@ class StartChartManage {
|
||||
// 优先使用H264,其次是MJPEG
|
||||
if (isH264) {
|
||||
Get.toNamed(
|
||||
Routers.h264WebView,
|
||||
Routers.h264View,
|
||||
);
|
||||
} else if (isMJpeg) {
|
||||
Get.toNamed(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user