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
11ea3344
Commit
11ea3344
authored
Sep 05, 2022
by
sheteng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
语音房间
parent
1f2ac88d
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
95 additions
and
47 deletions
+95
-47
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
+16
-5
ccim/libs/janus-release.aar
ccim/libs/janus-release.aar
+0
-0
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
+2
-1
ccim/src/main/java/com/ccwangluo/ccim/audio/JanusService.java
.../src/main/java/com/ccwangluo/ccim/audio/JanusService.java
+68
-41
ccim/src/main/java/com/ccwangluo/ccim/listener/AudioRoomListener.java
...n/java/com/ccwangluo/ccim/listener/AudioRoomListener.java
+8
-0
ccim/src/main/java/com/ccwangluo/ccim/util/ErrorCode.java
ccim/src/main/java/com/ccwangluo/ccim/util/ErrorCode.java
+1
-0
No files found.
app/libs/janus-release.aar
View file @
11ea3344
No preview for this file type
app/src/main/java/com/ccwangluo/im/ui/notifications/NotificationsFragment.java
View file @
11ea3344
...
...
@@ -25,6 +25,7 @@ import androidx.navigation.NavController;
import
androidx.navigation.Navigation
;
import
com.ccwangluo.ccim.CCIMClient
;
import
com.ccwangluo.ccim.listener.AudioRoomListener
;
import
com.ccwangluo.ccim.listener.ResultEventCallback
;
import
com.ccwangluo.im.adapter.ChannelAdapter
;
import
com.ccwangluo.im.data.LoginViewModel
;
...
...
@@ -173,15 +174,25 @@ public class NotificationsFragment extends Fragment {
binding
.
joinRoom
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
CCIMClient
.
getInstance
().
joinAudioRoom
(
getContext
(),
1234
,
new
ResultEventCallback
<
Void
>
()
{
CCIMClient
.
getInstance
().
joinAudioRoom
(
getContext
(),
62
,
new
AudioRoomListener
()
{
@Override
public
void
on
Success
(
Void
unused
)
{
ToastUtil
.
show
(
getContext
(),
"加入成功
"
);
public
void
on
JoinSuccess
(
)
{
ToastUtil
.
show
(
getContext
(),
"onJoinSuccess
"
);
}
@Override
public
void
onFailed
(
int
errorCode
)
{
ToastUtil
.
show
(
getContext
(),
"加入失败"
);
public
void
onJoinFailed
(
int
code
)
{
ToastUtil
.
show
(
getContext
(),
"onJoinFailed"
);
}
@Override
public
void
onExit
()
{
ToastUtil
.
show
(
getContext
(),
"onExit"
);
}
@Override
public
void
onError
(
int
code
)
{
ToastUtil
.
show
(
getContext
(),
"onError"
);
}
});
...
...
ccim/libs/janus-release.aar
View file @
11ea3344
No preview for this file type
ccim/src/main/java/com/ccwangluo/ccim/CCIMClient.java
View file @
11ea3344
...
...
@@ -13,6 +13,7 @@ import androidx.annotation.NonNull;
import
com.ccwangluo.ccim.audio.JanusService
;
import
com.ccwangluo.ccim.audio.ServiceDelegate
;
import
com.ccwangluo.ccim.listener.AudioRoomListener
;
import
com.ccwangluo.ccim.listener.OnClientConnectListener
;
import
com.ccwangluo.ccim.listener.OnConnectListener
;
import
com.ccwangluo.ccim.listener.OnPlayAudioCallback
;
...
...
@@ -675,7 +676,7 @@ public class CCIMClient {
/**
* 加入房间
*/
public
void
joinAudioRoom
(
Context
context
,
int
roomId
,
ResultEventCallback
<
Void
>
callback
)
{
public
void
joinAudioRoom
(
Context
context
,
int
roomId
,
AudioRoomListener
callback
)
{
JanusConfImpl
conf
=
new
JanusConfImpl
();
conf
.
url
(
audioServer
);
conf
.
plugin
(
JanusPlugins
.
VIDEOROOM
);
...
...
ccim/src/main/java/com/ccwangluo/ccim/audio/JanusService.java
View file @
11ea3344
package
com.ccwangluo.ccim.audio
;
import
android.Manifest
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.util.Log
;
import
androidx.lifecycle.LiveData
;
import
androidx.lifecycle.MutableLiveData
;
import
androidx.room.Room
;
import
android.os.Handler
;
import
android.os.Looper
;
import
com.ccwangluo.ccim.CCIMClient
;
import
com.ccwangluo.ccim.listener.AudioRoomListener
;
import
com.ccwangluo.ccim.listener.ResultEventCallback
;
import
com.ccwangluo.ccim.modle.User
;
import
com.ccwangluo.ccim.util.ErrorCode
;
...
...
@@ -29,81 +27,83 @@ 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.AudioTrack
;
import
org.webrtc.DataChannel
;
import
org.webrtc.EglBase
;
import
org.webrtc.VideoTrack
;
import
org.webrtc.Logging
;
import
org.webrtc.PeerConnection
;
import
java.nio.ByteBuffer
;
import
java.nio.charset.Charset
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.logging.Logger
;
public
class
JanusService
extends
JanusDelegate
{
private
final
Logger
logger
=
Logger
.
getLogger
(
CCIMClient
.
class
.
getName
());
private
Janus
_janus
;
private
EglBase
_rootEgl
;
private
User
user
;
private
Integer
roomId
;
private
Boolean
isJoin
=
false
;
private
AppRTCAudioManager
audioManager
;
private
ResultEventCallback
<
Void
>
callback
;
private
AudioRoomListener
callback
;
public
JanusService
(
Context
context
,
Integer
roomId
,
User
user
,
ResultEventCallback
<
Void
>
callback
)
{
audioManager
=
AppRTCAudioManager
.
create
(
context
.
getApplicationContext
());
// private AppRTCAudioManager audioManager;
public
JanusService
(
Context
context
,
Integer
roomId
,
User
user
,
AudioRoomListener
callback
)
{
this
.
user
=
user
;
this
.
roomId
=
roomId
;
this
.
callback
=
callback
;
}
public
void
start
(
Context
context
,
JanusConfImpl
conf
)
{
Dexter
.
withContext
(
context
).
withPermissions
(
Manifest
.
permission
.
RECORD_AUDIO
).
withListener
(
new
MultiplePermissionsListener
()
{
@Override
public
void
onPermissionsChecked
(
MultiplePermissionsReport
report
)
{
JanusFactory
factory
=
new
JanusFactory
();
_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
)
->
{
}
);
}
//
if (audioManager != null) {
//
audioManager.start((selectedAudioDevice, availableAudioDevices) -> {
//
//
}
//
);
//
}
}
@Override
public
void
onPermissionRationaleShouldBeShown
(
List
<
PermissionRequest
>
permissions
,
PermissionToken
token
)
{
callback
.
onFailed
(
ErrorCode
.
ERROR_PERMISSION_DENIE
);
callback
.
on
Join
Failed
(
ErrorCode
.
ERROR_PERMISSION_DENIE
);
}
}).
check
();
}
public
void
stop
()
{
this
.
_janus
.
close
();
}
public
void
hangup
()
{
this
.
_janus
.
hangup
();
if
(
_janus
!=
null
)
{
this
.
_janus
.
close
();
}
}
@Override
public
void
onClose
()
{
if
(
audioManager
!=
null
)
{
audioManager
.
stop
();
}
logger
.
info
(
"close"
);
// if (audioManager != null) {
// audioManager.stop();
// }
}
@Override
public
void
onError
(
JanusError
error
,
Bundle
context
)
{
logger
.
info
(
"onError "
+
error
.
toString
());
callback
.
onError
(
ErrorCode
.
ERRORCODE_NOT_EXISTS
);
}
@Override
public
void
onReady
()
{
logger
.
info
(
"onReady"
);
Bundle
payload
=
Bundle
.
create
();
payload
.
setInt
(
"room"
,
roomId
);
payload
.
setString
(
"display"
,
new
Gson
().
toJson
(
user
));
...
...
@@ -124,6 +124,30 @@ public class JanusService extends JanusDelegate {
public
void
onDatachannelMessage
(
DataChannel
.
Buffer
buffer
)
{
}
private
State
state
=
State
.
INIT
;
@Override
public
void
onIceConnectionChange
(
PeerConnection
.
IceConnectionState
iceConnectionState
)
{
logger
.
info
(
"onIceConnectionChange"
);
if
(
iceConnectionState
==
PeerConnection
.
IceConnectionState
.
DISCONNECTED
)
{
stop
();
state
=
State
.
DISCONNECTED
;
callback
.
onError
(
ErrorCode
.
NET_ERROR
);
new
Handler
(
Looper
.
getMainLooper
()).
postDelayed
(()
->
{
if
(
state
!=
State
.
DISCONNECTED
)
{
return
;
}
_janus
.
dispatch
(
JanusCommands
.
FORCE_DESTROY
,
Bundle
.
create
());
},
5000
);
}
}
private
enum
State
{
INIT
,
STARTED
,
DISCONNECTED
,
STOPPED
}
@Override
public
String
onOffer
(
String
sdp
)
{
...
...
@@ -138,10 +162,12 @@ 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"
,
""
));
if
(
data
.
getString
(
"janus"
,
""
).
equals
(
"error"
)
&&
context
.
getString
(
"command"
,
""
).
equals
(
JanusCommands
.
JOIN
))
{
System
.
out
.
println
(
"加入失败"
);
logger
.
info
(
"加入失败"
);
if
(
callback
!=
null
)
{
callback
.
onFailed
(
ErrorCode
.
JOIN_AUDIO_FAILED
);
callback
.
on
Join
Failed
(
ErrorCode
.
JOIN_AUDIO_FAILED
);
}
return
;
}
...
...
@@ -154,12 +180,12 @@ public class JanusService extends JanusDelegate {
payload
.
setBool
(
"video"
,
false
);
payload
.
setBool
(
"data"
,
false
);
this
.
_janus
.
dispatch
(
JanusCommands
.
PUBLISH
,
payload
);
System
.
out
.
println
(
"加入成功"
);
List
<
JanusData
>
publishers
=
data
.
getList
(
"publishers"
);
subscribePublishers
(
publishers
);
if
(
callback
!=
null
)
{
callback
.
onSuccess
(
null
);
}
logger
.
info
(
"加入成功"
);
//
List<JanusData> publishers = data.getList("publishers");
//
subscribePublishers(publishers);
//
if (callback!= null) {
// callback.onJoinSuccess(
);
//
}
}
return
;
}
...
...
@@ -186,6 +212,7 @@ public class JanusService extends JanusDelegate {
}
}
}
}
ccim/src/main/java/com/ccwangluo/ccim/listener/AudioRoomListener.java
0 → 100644
View file @
11ea3344
package
com.ccwangluo.ccim.listener
;
public
interface
AudioRoomListener
{
void
onJoinSuccess
();
void
onJoinFailed
(
int
code
);
void
onExit
();
void
onError
(
int
code
);
}
ccim/src/main/java/com/ccwangluo/ccim/util/ErrorCode.java
View file @
11ea3344
...
...
@@ -17,5 +17,6 @@ public class ErrorCode {
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
;
//未知错误
}
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