Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
ccim_sdk_android
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sheteng
ccim_sdk_android
Commits
a86b18f9
Commit
a86b18f9
authored
Sep 07, 2022
by
sheteng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
语音房间 1
parent
11ea3344
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
80 additions
and
53 deletions
+80
-53
app/libs/janus-release.aar
app/libs/janus-release.aar
+0
-0
app/src/main/java/com/ccwangluo/im/ui/notifications/NotificationsFragment.java
.../ccwangluo/im/ui/notifications/NotificationsFragment.java
+35
-19
ccim/build.gradle
ccim/build.gradle
+1
-1
ccim/libs/janus-release.aar
ccim/libs/janus-release.aar
+0
-0
ccim/src/main/AndroidManifest.xml
ccim/src/main/AndroidManifest.xml
+1
-0
ccim/src/main/java/com/ccwangluo/ccim/audio/JanusService.java
.../src/main/java/com/ccwangluo/ccim/audio/JanusService.java
+40
-30
ccim/src/main/java/com/ccwangluo/ccim/util/ErrorCode.java
ccim/src/main/java/com/ccwangluo/ccim/util/ErrorCode.java
+3
-3
No files found.
app/libs/janus-release.aar
View file @
a86b18f9
No preview for this file type
app/src/main/java/com/ccwangluo/im/ui/notifications/NotificationsFragment.java
View file @
a86b18f9
...
...
@@ -9,6 +9,7 @@ import android.content.Intent;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.text.InputType
;
import
android.text.TextUtils
;
import
android.view.LayoutInflater
;
import
android.view.View
;
...
...
@@ -174,28 +175,43 @@ public class NotificationsFragment extends Fragment {
binding
.
joinRoom
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
CCIMClient
.
getInstance
().
joinAudioRoom
(
getContext
(),
62
,
new
AudioRoomListener
()
{
@Override
public
void
onJoinSuccess
()
{
ToastUtil
.
show
(
getContext
(),
"onJoinSuccess"
);
}
@Override
public
void
onJoinFailed
(
int
code
)
{
ToastUtil
.
show
(
getContext
(),
"onJoinFailed"
);
}
final
EditText
roomeId
=
new
EditText
(
getContext
());
roomeId
.
setHint
(
"room id"
);
roomeId
.
setInputType
(
InputType
.
TYPE_CLASS_NUMBER
);
LinearLayout
linearLayout
=
new
LinearLayout
(
getContext
());
linearLayout
.
setOrientation
(
LinearLayout
.
VERTICAL
);
linearLayout
.
addView
(
roomeId
);
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
getContext
());
builder
.
setTitle
(
"create channel"
).
setIcon
(
android
.
R
.
drawable
.
ic_dialog_info
).
setView
(
linearLayout
)
.
setNegativeButton
(
"Cancel"
,
null
);
builder
.
setPositiveButton
(
"Ok"
,
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
String
roomId
=
roomeId
.
getText
().
toString
();
CCIMClient
.
getInstance
().
joinAudioRoom
(
getContext
(),
Integer
.
parseInt
(
roomId
),
new
AudioRoomListener
()
{
@Override
public
void
onJoinSuccess
()
{
ToastUtil
.
show
(
getContext
(),
"onJoinSuccess"
);
}
@Override
public
void
onExit
(
)
{
ToastUtil
.
show
(
getContext
(),
"onExit"
);
}
@Override
public
void
onJoinFailed
(
int
code
)
{
ToastUtil
.
show
(
getContext
(),
"onJoinFailed"
+
code
);
}
@Override
public
void
onError
(
int
code
)
{
ToastUtil
.
show
(
getContext
(),
"onError"
);
}
});
@Override
public
void
onExit
()
{
ToastUtil
.
show
(
getContext
(),
"onExit"
);
}
@Override
public
void
onError
(
int
code
)
{
ToastUtil
.
show
(
getContext
(),
"onError"
);
}
});
}
});
builder
.
show
();
}
});
...
...
ccim/build.gradle
View file @
a86b18f9
...
...
@@ -76,5 +76,5 @@ dependencies {
implementation
"androidx.room:room-runtime:$room_version"
annotationProcessor
"androidx.room:room-compiler:$room_version"
implementation
'com.karumi:dexter:6.2.3'
implementation
'
org.webrtc:google-webrtc:1.0.28513
'
implementation
'
ch.threema:webrtc-android:100.0.0
'
}
\ No newline at end of file
ccim/libs/janus-release.aar
View file @
a86b18f9
No preview for this file type
ccim/src/main/AndroidManifest.xml
View file @
a86b18f9
...
...
@@ -5,5 +5,6 @@
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.RECORD_AUDIO"
/>
<uses-permission
android:name=
"android.permission.MODIFY_AUDIO_SETTINGS"
/>
</manifest>
\ No newline at end of file
ccim/src/main/java/com/ccwangluo/ccim/audio/JanusService.java
View file @
a86b18f9
...
...
@@ -2,8 +2,10 @@ package com.ccwangluo.ccim.audio;
import
android.Manifest
;
import
android.content.Context
;
import
android.media.AudioManager
;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.util.Log
;
import
com.ccwangluo.ccim.CCIMClient
;
import
com.ccwangluo.ccim.listener.AudioRoomListener
;
...
...
@@ -27,6 +29,7 @@ import com.karumi.dexter.MultiplePermissionsReport;
import
com.karumi.dexter.PermissionToken
;
import
com.karumi.dexter.listener.PermissionRequest
;
import
com.karumi.dexter.listener.multi.MultiplePermissionsListener
;
import
org.webrtc.DataChannel
;
import
org.webrtc.EglBase
;
import
org.webrtc.Logging
;
...
...
@@ -42,15 +45,19 @@ public class JanusService extends JanusDelegate {
private
User
user
;
private
Integer
roomId
;
private
Boolean
isJoin
=
false
;
private
AudioRoomListener
callback
;
private
AudioRoomListener
callback
;
// private AppRTC
AudioManager audioManager;
private
AudioManager
audioManager
;
public
JanusService
(
Context
context
,
Integer
roomId
,
User
user
,
AudioRoomListener
callback
)
{
audioManager
=
(
AudioManager
)
context
.
getSystemService
(
Context
.
AUDIO_SERVICE
);
this
.
user
=
user
;
this
.
roomId
=
roomId
;
this
.
callback
=
callback
;
if
(
audioManager
!=
null
)
{
audioManager
.
setMode
(
AudioManager
.
MODE_IN_COMMUNICATION
);
audioManager
.
setSpeakerphoneOn
(
true
);
}
}
...
...
@@ -59,18 +66,13 @@ public class JanusService extends JanusDelegate {
@Override
public
void
onPermissionsChecked
(
MultiplePermissionsReport
report
)
{
JanusFactory
factory
=
new
JanusFactory
();
_janus
=
factory
.
create
(
conf
,
JanusService
.
this
,
context
.
getApplicationContext
());
_janus
=
factory
.
create
(
conf
,
JanusService
.
this
,
context
.
getApplicationContext
());
Logging
.
enableLogToDebugOutput
(
Logging
.
Severity
.
LS_VERBOSE
);
_rootEgl
=
factory
.
rootEgl
();
_janus
.
init
();
// if (audioManager != null) {
// audioManager.start((selectedAudioDevice, availableAudioDevices) -> {
//
// }
// );
// }
}
@Override
...
...
@@ -81,6 +83,7 @@ public class JanusService extends JanusDelegate {
}
public
void
stop
()
{
state
=
State
.
NORMAL_DISCONNECTED
;
if
(
_janus
!=
null
)
{
this
.
_janus
.
close
();
}
...
...
@@ -90,9 +93,9 @@ public class JanusService extends JanusDelegate {
@Override
public
void
onClose
()
{
logger
.
info
(
"close"
);
//
if (audioManager != null) {
// audioManager.stop(
);
//
}
if
(
audioManager
!=
null
)
{
audioManager
.
setMode
(
AudioManager
.
MODE_NORMAL
);
}
}
@Override
...
...
@@ -124,6 +127,7 @@ public class JanusService extends JanusDelegate {
public
void
onDatachannelMessage
(
DataChannel
.
Buffer
buffer
)
{
}
private
State
state
=
State
.
INIT
;
@Override
...
...
@@ -131,10 +135,13 @@ public class JanusService extends JanusDelegate {
logger
.
info
(
"onIceConnectionChange"
);
if
(
iceConnectionState
==
PeerConnection
.
IceConnectionState
.
DISCONNECTED
)
{
stop
();
state
=
State
.
DISCONNECTED
;
callback
.
onError
(
ErrorCode
.
NET_ERROR
);
if
(
state
!=
State
.
NORMAL_DISCONNECTED
)
{
callback
.
onError
(
ErrorCode
.
NET_ERROR
);
state
=
State
.
ERROR_DISCONNECTED
;
}
callback
.
onExit
();
new
Handler
(
Looper
.
getMainLooper
()).
postDelayed
(()
->
{
if
(
state
!=
State
.
DISCONNECTED
)
{
if
(
state
!=
State
.
ERROR_DISCONNECTED
&&
state
!=
State
.
NORMAL_
DISCONNECTED
)
{
return
;
}
_janus
.
dispatch
(
JanusCommands
.
FORCE_DESTROY
,
Bundle
.
create
());
...
...
@@ -145,7 +152,8 @@ public class JanusService extends JanusDelegate {
private
enum
State
{
INIT
,
STARTED
,
DISCONNECTED
,
NORMAL_DISCONNECTED
,
ERROR_DISCONNECTED
,
STOPPED
}
...
...
@@ -162,16 +170,19 @@ public class JanusService extends JanusDelegate {
@Override
public
void
onEvent
(
JanusEvent
event
,
Bundle
context
)
{
JanusData
data
=
event
.
data
();
logger
.
info
(
"onEvent "
+
data
.
getString
(
"janus"
,
""
));
logger
.
info
(
"onEvent "
+
data
.
getString
(
"videoroom"
,
""
));
logger
.
info
(
"onEvent "
+
data
.
getString
(
"janus"
,
""
));
logger
.
info
(
"onEvent "
+
data
.
getString
(
"videoroom"
,
""
));
if
(
data
.
getString
(
"janus"
,
""
).
equals
(
"error"
)
&&
context
.
getString
(
"command"
,
""
).
equals
(
JanusCommands
.
JOIN
))
{
logger
.
info
(
"加入失败"
);
if
(
callback
!=
null
)
{
if
(
callback
!=
null
)
{
callback
.
onJoinFailed
(
ErrorCode
.
JOIN_AUDIO_FAILED
);
}
return
;
}
if
(
data
.
getString
(
"videoroom"
,
""
).
equals
(
"event"
)
&&
data
.
getInt
(
"error_code"
,
-
1
)
==
426
)
{
callback
.
onJoinFailed
(
ErrorCode
.
JOIN_AUDIO_FAILED_NO_SUCH_ROOM
);
return
;
}
if
(
data
.
getString
(
"videoroom"
,
""
).
equals
(
"joined"
))
{
if
(!
isJoin
)
{
isJoin
=
true
;
...
...
@@ -181,25 +192,25 @@ public class JanusService extends JanusDelegate {
payload
.
setBool
(
"data"
,
false
);
this
.
_janus
.
dispatch
(
JanusCommands
.
PUBLISH
,
payload
);
logger
.
info
(
"加入成功"
);
//
List<JanusData> publishers = data.getList("publishers");
//
subscribePublishers(publishers);
// if (callback
!= null) {
//
callback.onJoinSuccess();
//
}
List
<
JanusData
>
publishers
=
data
.
getList
(
"publishers"
);
subscribePublishers
(
publishers
);
if
(
callback
!=
null
)
{
callback
.
onJoinSuccess
();
}
}
return
;
}
List
<
JanusData
>
publishers
=
data
.
getList
(
"publishers"
);
if
(
publishers
.
size
()
>
0
)
{
if
(
publishers
.
size
()
>
0
)
{
subscribePublishers
(
publishers
);
return
;
}
}
private
void
subscribePublishers
(
List
<
JanusData
>
publishers
)
{
if
(
publishers
.
size
()
>
0
)
{
for
(
JanusData
publisher
:
publishers
)
{
if
(
publishers
.
size
()
>
0
)
{
for
(
JanusData
publisher
:
publishers
)
{
Bundle
payload
=
Bundle
.
create
();
payload
.
setInt
(
"room"
,
roomId
);
payload
.
setInt
(
"feed"
,
publisher
.
getInt
(
"id"
,
-
1
));
...
...
@@ -212,7 +223,6 @@ public class JanusService extends JanusDelegate {
}
}
}
}
ccim/src/main/java/com/ccwangluo/ccim/util/ErrorCode.java
View file @
a86b18f9
...
...
@@ -9,14 +9,14 @@ public class ErrorCode {
public
static
final
int
VOICE_TOO_LONG
=
904
;
//录音时长过长
public
static
final
int
ERROR_VOICE_PLAY
=
905
;
//播放错误
public
static
final
int
MSG_TYPE_ERROR
=
906
;
//播放类型错误
public
static
final
int
DOWNLOAD_ERR
=
907
;
//
播放类型
错误
public
static
final
int
MSG_NOT_EXISTS
=
908
;
//
播放类型错误
public
static
final
int
DOWNLOAD_ERR
=
907
;
//
下载
错误
public
static
final
int
MSG_NOT_EXISTS
=
908
;
//
消息不存在
public
static
final
int
ERRORCODE_NOT_EXISTS
=
909
;
//错误类型不存在
public
static
final
int
MSG_CONTENT_IS_EMPTY
=
910
;
//发送消息体为空
public
static
final
int
START_VOICE_FAILED
=
911
;
//录音创建失败
public
static
final
int
ERROR_PERMISSION_DENIE
=
912
;
//权限拒绝
public
static
final
int
JOIN_AUDIO_FAILED
=
913
;
//加入语音失败
public
static
final
int
SYSTEM_ERROR
=
914
;
//未知错误
public
static
final
int
JOIN_AUDIO_FAILED_NO_SUCH_ROOM
=
914
;
//没有这个房间
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment