mixs) {
35 | list.clear();
36 | list.addAll(mixs);
37 | notifyDataSetChanged();
38 | }
39 |
40 | @Override
41 | public int getCount() {
42 | return list.size();
43 | }
44 |
45 | @Override
46 | public MixInfo getItem(int position) {
47 | return list.get(position);
48 | }
49 |
50 | private int index = -1;
51 |
52 | public void checked(int position) {
53 | index = position;
54 | notifyDataSetChanged();
55 | }
56 |
57 | @Override
58 | public long getItemId(int position) {
59 | return position;
60 | }
61 |
62 | @Override
63 | public View getView(int position, View convertView, ViewGroup parent) {
64 |
65 | ViewHolder vh;
66 | if (null == convertView) {
67 | vh = new ViewHolder();
68 | convertView = inflater.inflate(R.layout.mix_item_layout, null);
69 | vh.tvDuration = (TextView) convertView
70 | .findViewById(R.id.mix_duration);
71 | vh.tvName = (TextView) convertView.findViewById(R.id.mix_name);
72 | convertView.setTag(vh);
73 | } else {
74 | vh = (ViewHolder) convertView.getTag();
75 |
76 | }
77 | MixInfo info = getItem(position);
78 | if (null != info) {
79 | vh.tvDuration.setText(info.getDuration());
80 | vh.tvName.setText(info.getName());
81 | }
82 | if (index == position && index != (getCount() - 1)) {
83 | vh.tvDuration.setTextColor(color_ed);
84 | vh.tvName.setTextColor(color_ed);
85 | } else {
86 | vh.tvDuration.setTextColor(color_n);
87 | vh.tvName.setTextColor(color_n);
88 | }
89 |
90 | return convertView;
91 | }
92 |
93 | class ViewHolder {
94 | TextView tvDuration, tvName;
95 | }
96 |
97 | }
98 |
--------------------------------------------------------------------------------
/RDLiveDemo/src/com/rd/mix/MixInfo.java:
--------------------------------------------------------------------------------
1 | package com.rd.mix;
2 |
3 | /**
4 | * Created by JIAN on 2017/1/19.
5 | */
6 |
7 | public class MixInfo {
8 | public String getName() {
9 | return name;
10 | }
11 |
12 | public void setName(String name) {
13 | this.name = name;
14 | }
15 |
16 | public String getDuration() {
17 | return duration;
18 | }
19 |
20 | public void setDuration(String duration) {
21 | this.duration = duration;
22 | }
23 |
24 | public String getPath() {
25 | return path;
26 | }
27 |
28 | public void setPath(String path) {
29 | this.path = path;
30 | }
31 |
32 | public MixInfo(String duration, String path, String name) {
33 | this.duration = duration;
34 | this.path = path;
35 | this.name = name;
36 | }
37 |
38 | private String duration;
39 | private String name;
40 | private String path;
41 |
42 | @Override
43 | public String toString() {
44 | return "MixInfo{" +
45 | "duration='" + duration + '\'' +
46 | ", name='" + name + '\'' +
47 | ", path='" + path + '\'' +
48 | '}';
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/RDLiveDemo/src/com/rd/mix/PlayerUtils.java:
--------------------------------------------------------------------------------
1 | package com.rd.mix;
2 |
3 | import java.io.IOException;
4 |
5 | import android.content.Context;
6 | import android.util.Log;
7 | import android.widget.Toast;
8 |
9 | import com.rd.demo.utils.DateTimeUtils;
10 | import com.rd.recorder.AudioPlayer;
11 | import com.rd.recorder.AudioPlayer.OnCompletionListener;
12 | import com.rd.recorder.AudioPlayer.OnErrorListener;
13 | import com.rd.recorder.AudioPlayer.OnInfoListener;
14 | import com.rd.recorder.AudioPlayer.OnPreparedListener;
15 |
16 | public class PlayerUtils {
17 |
18 | private static AudioPlayer player;// 混音播放器
19 |
20 | private static PlayerUtils instance;
21 |
22 | public static PlayerUtils getInstance() {
23 | if (null == instance) {
24 | instance = new PlayerUtils();
25 | }
26 | return instance;
27 | }
28 |
29 | public interface IMuisic {
30 | public void onMusicPrepared(int duration);
31 | }
32 |
33 | /**
34 | * 初始化音乐
35 | *
36 | * @param info
37 | * mix对象
38 | */
39 | public void initPlayer(final Context context, final MixInfo info,
40 | final IMuisic iListener) {
41 | if (null != player) {
42 | player.stop();
43 | player.release();
44 | }
45 | lastProgress = DEFAULT_PROGRESS;
46 | player = new AudioPlayer();
47 | try {
48 | player.setDataSource(info.getPath());
49 | player.setOnPreparedListener(new OnPreparedListener() {
50 |
51 | @Override
52 | public void onPrepared(AudioPlayer mp) {
53 | info.setDuration(DateTimeUtils.millsTommS(mp.getDuration()));
54 | iListener.onMusicPrepared(mp.getDuration());
55 | start();// 初始化完成就播放
56 | }
57 | });
58 | player.setOnInfoListener(new OnInfoListener() {
59 |
60 | @Override
61 | public boolean onInfo(AudioPlayer mp, int what, int extra) {
62 | return false;
63 | }
64 | });
65 | player.setOnCompletionListener(new OnCompletionListener() {
66 |
67 | @Override
68 | public void onCompletion(AudioPlayer mp) {
69 | player.seekTo(0);
70 | start();// 无限循环播放
71 | }
72 | });
73 | player.setOnErrorListener(new OnErrorListener() {
74 |
75 | @Override
76 | public boolean onError(AudioPlayer mp, int what, int extra) {
77 | Log.e("playerUtils", "onerror.." + what + "..." + extra);
78 | Toast.makeText(context, "不支持该音乐", Toast.LENGTH_SHORT)
79 | .show();
80 | return false;
81 | }
82 | });
83 | player.prepareAsync();
84 |
85 | } catch (IllegalArgumentException e) {
86 | e.printStackTrace();
87 | } catch (SecurityException e) {
88 | e.printStackTrace();
89 | } catch (IllegalStateException e) {
90 | e.printStackTrace();
91 | } catch (IOException e) {
92 | e.printStackTrace();
93 | }
94 |
95 | }
96 |
97 | /**
98 | * 开始播放音乐
99 | */
100 | private void start() {
101 | if (null != player && !player.isPlaying()) {
102 | player.start();
103 | }
104 | }
105 |
106 | private final int DEFAULT_PROGRESS = -1;
107 | private long lastProgress = DEFAULT_PROGRESS;
108 |
109 | /**
110 | * 暂停混音
111 | */
112 | public void onPasue() {
113 | if (null != player) {
114 | lastProgress = player.getCurrentPosition();
115 | if (player.isPlaying()) {
116 | player.pause();
117 | }
118 | } else {
119 | lastProgress = DEFAULT_PROGRESS;
120 | }
121 | }
122 |
123 | /**
124 | * 恢复播放
125 | */
126 | public void onResume() {
127 | if (null != player && lastProgress != DEFAULT_PROGRESS) {
128 | player.seekTo((int) lastProgress);
129 | lastProgress = DEFAULT_PROGRESS;
130 | player.start();
131 | } else {
132 | lastProgress = DEFAULT_PROGRESS;
133 | }
134 | }
135 |
136 | /**
137 | * 销毁混音播放器
138 | */
139 | public void release() {
140 | if (null != player) {
141 | player.setOnPreparedListener(null);
142 | player.setOnCompletionListener(null);
143 | player.setOnInfoListener(null);
144 | player.stop();
145 | player.release();
146 | player = null;
147 | }
148 | lastProgress = DEFAULT_PROGRESS;
149 | instance = null;
150 | System.gc();
151 | }
152 |
153 | private boolean isOsdEd = false;
154 |
155 | /**
156 | * 全局变量是否打开水印
157 | *
158 | * @return
159 | */
160 | public boolean isOsdEd() {
161 | return isOsdEd;
162 | }
163 |
164 | /**
165 | * 设置是否打开osd
166 | *
167 | * @param isOsded
168 | */
169 | public void setOsd(boolean isOsded) {
170 | isOsdEd = isOsded;
171 | }
172 |
173 | }
174 |
--------------------------------------------------------------------------------
/RDLiveSDK/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/RDLiveSDK/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | RDLiveSDK
4 |
5 |
6 |
7 |
8 |
9 | com.android.ide.eclipse.adt.ResourceManagerBuilder
10 |
11 |
12 |
13 |
14 | com.android.ide.eclipse.adt.PreCompilerBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.jdt.core.javabuilder
20 |
21 |
22 |
23 |
24 | com.android.ide.eclipse.adt.ApkBuilder
25 |
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.AndroidNature
31 | org.eclipse.jdt.core.javanature
32 |
33 |
34 |
--------------------------------------------------------------------------------
/RDLiveSDK/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/RDLiveSDK/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | dependencies {
4 | compile fileTree(dir: 'libs', exclude:['com.rd.base.jar','recorderbase.jar','fastjson-1.1.24.jar','okhttp-3.5.0.jar','okio-1.11.0.jar'],include: '*.jar')
5 | compile 'com.rd:base:0.0.9'
6 | compile 'com.rd:recorderbase:0.0.9'
7 | compile 'com.squareup.okio:okio:1.11.0'
8 | compile 'com.squareup.okhttp3:okhttp:3.5.0'
9 | compile 'com.alibaba:fastjson:1.1.24'
10 | }
11 |
12 | android {
13 | compileSdkVersion 21
14 | buildToolsVersion "23.0.2"
15 | packagingOptions {
16 | //过滤掉本地libs/armeabi/和libs/armeabi-v7a/中的部分so,以jcenter对应的版本为准
17 | exclude 'lib/armeabi/libRdBase.so'
18 | exclude 'lib/armeabi/libLiveRecorder.so'
19 | exclude 'lib/armeabi/libRecorderKernel.so'
20 | exclude 'lib/armeabi-v7a/libRdBase.so'
21 | exclude 'lib/armeabi-v7a/libLiveRecorder.so'
22 | exclude 'lib/armeabi-v7a/libRecorderKernel.so'
23 | }
24 | sourceSets {
25 | main {
26 | manifest.srcFile 'AndroidManifest.xml'
27 | java.srcDirs = ['src']
28 | resources.srcDirs = ['src']
29 | aidl.srcDirs = ['src']
30 | renderscript.srcDirs = ['src']
31 | res.srcDirs = ['res']
32 | assets.srcDirs = ['assets']
33 | jniLibs.srcDirs = ['libs']
34 | }
35 | }
36 | lintOptions {
37 | abortOnError false
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/allclasses-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 所有类
8 |
9 |
10 |
11 |
12 |
13 | 所有类
14 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/allclasses-noframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 所有类
8 |
9 |
10 |
11 |
12 |
13 | 所有类
14 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/com/rd/live/class-use/RDLiveSDK.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 类 com.rd.live.RDLiveSDK的使用
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
44 |
71 |
72 |
75 | 没有com.rd.live.RDLiveSDK的用法
76 |
77 |
94 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/com/rd/live/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | com.rd.live
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
接口
16 |
20 |
类
21 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/com/rd/live/package-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | com.rd.live 类分层结构
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
44 |
71 |
72 |
75 |
76 |
类分层结构
77 |
78 | - java.lang.Object
79 |
82 |
83 |
84 |
接口分层结构
85 |
89 |
90 |
91 |
108 |
109 |
110 | - 上一个
111 | - 下一个
112 |
113 |
117 |
120 |
121 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/com/rd/live/package-use.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 程序包 com.rd.live的使用
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
44 |
71 |
72 |
75 |
101 |
102 |
119 |
120 |
121 | - 上一个
122 | - 下一个
123 |
124 |
128 |
131 |
132 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/com/rd/recorder/class-use/OSDBuilder.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 类 com.rd.recorder.OSDBuilder的使用
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
45 |
72 |
73 |
76 | 没有com.rd.recorder.OSDBuilder的用法
77 |
78 |
96 |
123 |
124 |
125 |
126 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/com/rd/recorder/class-use/RecorderStateException.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 类 com.rd.recorder.RecorderStateException的使用
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
45 |
72 |
73 |
76 | 没有com.rd.recorder.RecorderStateException的用法
77 |
78 |
96 |
123 |
124 |
125 |
126 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/com/rd/recorder/class-use/ResultConstants.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 类 com.rd.recorder.ResultConstants的使用
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
45 |
72 |
73 |
76 | 没有com.rd.recorder.ResultConstants的用法
77 |
78 |
96 |
123 |
124 |
125 |
126 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/com/rd/recorder/package-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | com.rd.recorder
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
接口
16 |
25 |
类
26 |
32 |
异常错误
33 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/deprecated-list.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 已过时的列表
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
44 |
71 |
72 |
79 |
103 |
104 |
121 |
122 |
123 | - 上一个
124 | - 下一个
125 |
126 |
130 |
133 |
134 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/index-files/index-7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | P - 索引
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
44 |
71 |
72 | A C E G I O P R S
73 |
74 |
75 |
P
76 |
77 | - pasuePublish() - 类 中的静态方法com.rd.live.RDLiveSDK
78 | -
79 |
已过时。
80 |
81 | - pausePublish() - 类 中的静态方法com.rd.live.RDLiveSDK
82 | -
83 |
暂停直播,场景:程序切换到后台,暂停直播,释放摄像头
84 |
85 |
86 |
A C E G I O P R S
87 |
88 |
105 |
132 |
133 |
134 |
135 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 生成的文档 (无标题)
8 |
60 |
61 |
72 |
73 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/overview-frame.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 概览列表
8 |
9 |
10 |
11 |
12 |
13 |
14 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/overview-summary.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 概览
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
45 |
72 |
73 |
92 |
93 |
111 |
112 |
113 | - 上一个
114 | - 下一个
115 |
116 |
120 |
123 |
124 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/overview-tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 类分层结构
8 |
9 |
10 |
11 |
12 |
13 |
23 |
26 |
27 |
44 |
71 |
72 |
79 |
80 |
类分层结构
81 |
82 | - java.lang.Object
83 |
86 |
87 |
88 |
接口分层结构
89 |
93 |
94 |
95 |
112 |
113 |
114 | - 上一个
115 | - 下一个
116 |
117 |
121 |
124 |
125 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/package-list:
--------------------------------------------------------------------------------
1 | com.rd.live
2 |
--------------------------------------------------------------------------------
/RDLiveSDK/docs/com.rd.live/script.js:
--------------------------------------------------------------------------------
1 | function show(type)
2 | {
3 | count = 0;
4 | for (var key in methods) {
5 | var row = document.getElementById(key);
6 | if ((methods[key] & type) != 0) {
7 | row.style.display = '';
8 | row.className = (count++ % 2) ? rowColor : altColor;
9 | }
10 | else
11 | row.style.display = 'none';
12 | }
13 | updateTabs(type);
14 | }
15 |
16 | function updateTabs(type)
17 | {
18 | for (var value in tabs) {
19 | var sNode = document.getElementById(tabs[value][0]);
20 | var spanNode = sNode.firstChild;
21 | if (value == type) {
22 | sNode.className = activeTableTab;
23 | spanNode.innerHTML = tabs[value][1];
24 | }
25 | else {
26 | sNode.className = tableTab;
27 | spanNode.innerHTML = "" + tabs[value][1] + "";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/RDLiveSDK/libs/armeabi-v7a/libLiveRecorder.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/armeabi-v7a/libLiveRecorder.so
--------------------------------------------------------------------------------
/RDLiveSDK/libs/armeabi-v7a/libRdBase.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/armeabi-v7a/libRdBase.so
--------------------------------------------------------------------------------
/RDLiveSDK/libs/armeabi-v7a/libRecorderKernel.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/armeabi-v7a/libRecorderKernel.so
--------------------------------------------------------------------------------
/RDLiveSDK/libs/armeabi-v7a/libijkffmpeg.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/armeabi-v7a/libijkffmpeg.so
--------------------------------------------------------------------------------
/RDLiveSDK/libs/armeabi-v7a/libijkplayer.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/armeabi-v7a/libijkplayer.so
--------------------------------------------------------------------------------
/RDLiveSDK/libs/armeabi-v7a/libijksdl.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/armeabi-v7a/libijksdl.so
--------------------------------------------------------------------------------
/RDLiveSDK/libs/com.rd.base.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/com.rd.base.jar
--------------------------------------------------------------------------------
/RDLiveSDK/libs/fastjson-1.1.24.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/fastjson-1.1.24.jar
--------------------------------------------------------------------------------
/RDLiveSDK/libs/okhttp-3.5.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/okhttp-3.5.0.jar
--------------------------------------------------------------------------------
/RDLiveSDK/libs/okio-1.11.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/okio-1.11.0.jar
--------------------------------------------------------------------------------
/RDLiveSDK/libs/rdlivesdk-1.0.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/rdlivesdk-1.0.1.jar
--------------------------------------------------------------------------------
/RDLiveSDK/libs/rdlivesdk-1.0.1.jar.properties:
--------------------------------------------------------------------------------
1 | doc=../docs/com.rd.live
2 | src=
--------------------------------------------------------------------------------
/RDLiveSDK/libs/recorderbase.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/RDLiveSDK/libs/recorderbase.jar
--------------------------------------------------------------------------------
/RDLiveSDK/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-23
15 | android.library=true
16 |
--------------------------------------------------------------------------------
/RDLiveSDK/res/.readme:
--------------------------------------------------------------------------------
1 | This hidden file is there to ensure there is an res folder.
--------------------------------------------------------------------------------
/RDLiveSDK/src/.readme:
--------------------------------------------------------------------------------
1 | This hidden file is there to ensure there is an src folder.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 锐动直播SDK android版
2 | 通过android移动端实时采集视频,同时在拍摄过程中支持多种实时滤镜效果,只要调用视频直播接口,通过3G、4G、WIFI等网络,推流发送给云端流媒体直播系统处理,并通过CDN视频加速分发做现场直播播出,供远程观看,是一款专业级水平的视频直播开发包。同时,在节目直播过程中,直播视频可归档、存储,方便后续回看。视频直播SDK不断优化视频采集和处理能力,让开发者更专注自身业务应用开发和运营。
3 |
4 | -------------------
5 |
6 | ### SDK功能介绍:
7 | #### 1.直播推流
8 | * **实时美颜**
9 | * **滤镜** 内置主流滤镜,支持扩展更多滤镜
10 | * **协议** RTMP协议,支持主流服务器
11 | * **编码与设置** 支持H264及AAC编码;支持智能硬件编码;支持自定义分辨率、码率、帧率
12 | * **内置伴音** 主播可以高质量卡拉OK及喊麦主持
13 | * **可定制的水印**
14 | * **人脸识别及装扮** 支持人脸识别并内置了一些演示人脸装扮挂件,支持扩展更多
15 | * **界面可定制** 当前已经实现了通用的开源界面,也可根据实际业务进行扩展
16 | * **云服务器** 支持锐动云服务器推流(UID直播推流),也支持使用第三方云服务器(URL直播推流)。
17 | * **摄像头切换** 前、后摄像头自由切换,中间无卡顿
18 | * **静音** 支持实时静音与取消静音
19 | * **支持横竖屏**
20 |
21 | #### 2.播放器
22 | * **低延迟**
23 | * **协议** 支持RTSP/RTMP协议,支持主流服务器
24 | * **支持自定义布局**
25 | * **静音** 支持实时静音与取消静音
26 | * **支持横竖屏**
27 |
28 | #### 截图
29 |
30 |
31 | ### 最新SDK下载(以下链接是最新的,github代码会稍有延迟):
32 |
33 | [SDK下载请单击](http://d.56show.com/rdsdk/private/pack/rd_live_android_20170308.zip)
34 |
35 | ### 功能试用:
36 | 下载以下demo应用,可以进行功能试用。
37 |
38 | [点击下载](https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/master/RDLiveDemo-release.apk)
39 |
40 | ### 关于授权:
41 |
42 | www.rdsdk.com 致力于专业的人做专业的事,降低客户的开发时间和开发成本,你只需要支付很少的费用,花上几个小时就能增加直播及回放功能。
43 |
44 | [单击申请试用](http://www.rdsdk.com/home/business/registers)
45 |
46 | **开发文档:**
47 |
48 | [点击查看](https://rdsdk.github.io/rdLiveSDK-for-Android/Android%E9%94%90%E5%8A%A8%E6%89%8B%E6%9C%BA%E7%9B%B4%E6%92%ADSDK%E6%96%87%E6%A1%A3.pdf)
49 |
50 | **JAVA接口文档:**
51 |
52 | [点击查看](https://rdsdk.github.io/rdLiveSDK-for-Android/RDLiveSDK/docs/com.rd.live/index.html)
53 |
54 | ### 洽谈咨询:
55 |
56 | **SDK交流群:** [305128688](http://shang.qq.com/wpa/qunwpa?idkey=bb9ac035ffa2d930719535a3b5d4542a780bb0f94613385fd93c996ee816ef05)
57 |
58 | **咨询电话: 4008989105**
59 |
60 | **客服电话: 15313066905 (周一至周五 9:00-18:00)**
61 |
62 | **客服邮箱:<2637433751@qq.com>**
63 |
64 |
65 |
--------------------------------------------------------------------------------
/website/static/live1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/website/static/live1.jpg
--------------------------------------------------------------------------------
/website/static/live2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/website/static/live2.jpg
--------------------------------------------------------------------------------
/website/static/live3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/website/static/live3.jpg
--------------------------------------------------------------------------------
/website/static/live4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rdsdk/rdLiveSDK-for-Android/2a9ef982728f650cb0973d5834484b4722aa9b58/website/static/live4.jpg
--------------------------------------------------------------------------------