Commit 934d5f6b9ca025078c028dacf1b880cf21590b8c
1 parent
ac138b3a
添加播放SDK文档
Showing
21 changed files
with
97 additions
and
58 deletions
.idea/misc.xml
| @@ -37,7 +37,7 @@ | @@ -37,7 +37,7 @@ | ||
| 37 | <ConfirmationsSetting value="0" id="Add" /> | 37 | <ConfirmationsSetting value="0" id="Add" /> |
| 38 | <ConfirmationsSetting value="0" id="Remove" /> | 38 | <ConfirmationsSetting value="0" id="Remove" /> |
| 39 | </component> | 39 | </component> |
| 40 | - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | 40 | + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> |
| 41 | <output url="file://$PROJECT_DIR$/build/classes" /> | 41 | <output url="file://$PROJECT_DIR$/build/classes" /> |
| 42 | </component> | 42 | </component> |
| 43 | <component name="ProjectType"> | 43 | <component name="ProjectType"> |
app/build.gradle
| @@ -4,7 +4,7 @@ android { | @@ -4,7 +4,7 @@ android { | ||
| 4 | compileSdkVersion 24 | 4 | compileSdkVersion 24 |
| 5 | buildToolsVersion "24.0.3" | 5 | buildToolsVersion "24.0.3" |
| 6 | defaultConfig { | 6 | defaultConfig { |
| 7 | - applicationId "com.cnlive.demo.video" | 7 | + applicationId "com.cnlive.demo.videoqn" |
| 8 | minSdkVersion 16 | 8 | minSdkVersion 16 |
| 9 | targetSdkVersion 24 | 9 | targetSdkVersion 24 |
| 10 | versionCode 1 | 10 | versionCode 1 |
app/src/androidTest/java/com/cnlive/demo/video/ExampleInstrumentedTest.java renamed to app/src/androidTest/java/com/cnlive/demo/videoqn/ExampleInstrumentedTest.java
app/src/main/AndroidManifest.xml
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| 3 | - package="com.cnlive.demo.video"> | 3 | + package="com.cnlive.demo.videoqn"> |
| 4 | 4 | ||
| 5 | <uses-permission android:name="android.permission.INTERNET" /> | 5 | <uses-permission android:name="android.permission.INTERNET" /> |
| 6 | <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | 6 | <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
| @@ -9,25 +9,25 @@ | @@ -9,25 +9,25 @@ | ||
| 9 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | 9 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
| 10 | 10 | ||
| 11 | <application | 11 | <application |
| 12 | - android:name=".VideoApplication" | 12 | + android:name="com.cnlive.demo.videoqn.VideoApplication" |
| 13 | android:allowBackup="true" | 13 | android:allowBackup="true" |
| 14 | android:icon="@mipmap/ic_launcher" | 14 | android:icon="@mipmap/ic_launcher" |
| 15 | android:label="@string/app_name" | 15 | android:label="@string/app_name" |
| 16 | android:supportsRtl="true" | 16 | android:supportsRtl="true" |
| 17 | android:theme="@style/AppTheme"> | 17 | android:theme="@style/AppTheme"> |
| 18 | - <activity android:name=".MainActivity"> | 18 | + <activity android:name="com.cnlive.demo.videoqn.MainActivity"> |
| 19 | <intent-filter> | 19 | <intent-filter> |
| 20 | <action android:name="android.intent.action.MAIN" /> | 20 | <action android:name="android.intent.action.MAIN" /> |
| 21 | 21 | ||
| 22 | <category android:name="android.intent.category.LAUNCHER" /> | 22 | <category android:name="android.intent.category.LAUNCHER" /> |
| 23 | </intent-filter> | 23 | </intent-filter> |
| 24 | </activity> | 24 | </activity> |
| 25 | - <activity android:name=".CNMediaPlayerActivity" /> | ||
| 26 | - <activity android:name=".CNAudioPlayerActivity" /> | ||
| 27 | - <activity android:name=".CNVideoViewActivity" /> | ||
| 28 | - <activity android:name=".CNVideoTextureActivity" /> | ||
| 29 | - <activity android:name=".VideoViewActivity" /> | ||
| 30 | - <activity android:name=".VideoFileActivity" /> | 25 | + <activity android:name="com.cnlive.demo.videoqn.CNMediaPlayerActivity" /> |
| 26 | + <activity android:name="com.cnlive.demo.videoqn.CNAudioPlayerActivity" /> | ||
| 27 | + <activity android:name="com.cnlive.demo.videoqn.CNVideoViewActivity" /> | ||
| 28 | + <activity android:name="com.cnlive.demo.videoqn.CNVideoTextureActivity" /> | ||
| 29 | + <activity android:name="com.cnlive.demo.videoqn.VideoViewActivity" /> | ||
| 30 | + <activity android:name="com.cnlive.demo.videoqn.VideoFileActivity" /> | ||
| 31 | </application> | 31 | </application> |
| 32 | 32 | ||
| 33 | </manifest> | 33 | </manifest> |
| 34 | \ No newline at end of file | 34 | \ No newline at end of file |
app/src/main/java/com/cnlive/demo/video/CNAudioPlayerActivity.java renamed to app/src/main/java/com/cnlive/demo/videoqn/CNAudioPlayerActivity.java
| 1 | -package com.cnlive.demo.video; | 1 | +package com.cnlive.demo.videoqn; |
| 2 | 2 | ||
| 3 | import android.content.Context; | 3 | import android.content.Context; |
| 4 | import android.media.AudioManager; | 4 | import android.media.AudioManager; |
| @@ -12,7 +12,7 @@ import android.util.Log; | @@ -12,7 +12,7 @@ import android.util.Log; | ||
| 12 | import android.view.View; | 12 | import android.view.View; |
| 13 | import android.widget.Toast; | 13 | import android.widget.Toast; |
| 14 | 14 | ||
| 15 | -import com.cnlive.demo.video.utils.Utils; | 15 | +import com.cnlive.demo.videoqn.utils.Utils; |
| 16 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; | 16 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; |
| 17 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; | 17 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; |
| 18 | import com.cnlive.libs.lib_cnvideo.player.AVOptions; | 18 | import com.cnlive.libs.lib_cnvideo.player.AVOptions; |
app/src/main/java/com/cnlive/demo/video/CNMediaPlayerActivity.java renamed to app/src/main/java/com/cnlive/demo/videoqn/CNMediaPlayerActivity.java
| 1 | -package com.cnlive.demo.video; | 1 | +package com.cnlive.demo.videoqn; |
| 2 | 2 | ||
| 3 | import android.content.Context; | 3 | import android.content.Context; |
| 4 | import android.media.AudioManager; | 4 | import android.media.AudioManager; |
| @@ -15,13 +15,11 @@ import android.view.View; | @@ -15,13 +15,11 @@ import android.view.View; | ||
| 15 | import android.widget.FrameLayout; | 15 | import android.widget.FrameLayout; |
| 16 | import android.widget.Toast; | 16 | import android.widget.Toast; |
| 17 | 17 | ||
| 18 | -import com.cnlive.demo.video.utils.Utils; | 18 | +import com.cnlive.demo.videoqn.utils.Utils; |
| 19 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; | 19 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; |
| 20 | -import com.cnlive.libs.lib_cnvideo.base.IDataSource; | ||
| 21 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; | 20 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; |
| 22 | import com.cnlive.libs.lib_cnvideo.player.AVOptions; | 21 | import com.cnlive.libs.lib_cnvideo.player.AVOptions; |
| 23 | import com.cnlive.libs.lib_cnvideo.player.MediaPlayer; | 22 | import com.cnlive.libs.lib_cnvideo.player.MediaPlayer; |
| 24 | -import com.cnlive.libs.util.Config; | ||
| 25 | 23 | ||
| 26 | import java.io.IOException; | 24 | import java.io.IOException; |
| 27 | 25 |
app/src/main/java/com/cnlive/demo/video/CNVideoTextureActivity.java renamed to app/src/main/java/com/cnlive/demo/videoqn/CNVideoTextureActivity.java
| 1 | -package com.cnlive.demo.video; | 1 | +package com.cnlive.demo.videoqn; |
| 2 | 2 | ||
| 3 | import android.os.Bundle; | 3 | import android.os.Bundle; |
| 4 | import android.os.Handler; | 4 | import android.os.Handler; |
| @@ -8,8 +8,8 @@ import android.view.View; | @@ -8,8 +8,8 @@ import android.view.View; | ||
| 8 | import android.widget.ImageView; | 8 | import android.widget.ImageView; |
| 9 | import android.widget.Toast; | 9 | import android.widget.Toast; |
| 10 | 10 | ||
| 11 | -import com.cnlive.demo.video.utils.Utils; | ||
| 12 | -import com.cnlive.demo.video.widget.MediaController; | 11 | +import com.cnlive.demo.videoqn.utils.Utils; |
| 12 | +import com.cnlive.demo.videoqn.widget.MediaController; | ||
| 13 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; | 13 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; |
| 14 | import com.cnlive.libs.lib_cnvideo.base.ICNVideoTextureView; | 14 | import com.cnlive.libs.lib_cnvideo.base.ICNVideoTextureView; |
| 15 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; | 15 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; |
| @@ -87,6 +87,7 @@ public class CNVideoTextureActivity extends VideoPlayerBaseActivity { | @@ -87,6 +87,7 @@ public class CNVideoTextureActivity extends VideoPlayerBaseActivity { | ||
| 87 | 87 | ||
| 88 | mVideoView.setOnCompletionListener(mOnCompletionListener); | 88 | mVideoView.setOnCompletionListener(mOnCompletionListener); |
| 89 | mVideoView.setOnErrorListener(mOnErrorListener); | 89 | mVideoView.setOnErrorListener(mOnErrorListener); |
| 90 | + mVideoView.setOnPreparedListener(onPreparedListener); | ||
| 90 | 91 | ||
| 91 | mVideoView.setVideoPath(mVideoPath); | 92 | mVideoView.setVideoPath(mVideoPath); |
| 92 | } | 93 | } |
app/src/main/java/com/cnlive/demo/video/CNVideoViewActivity.java renamed to app/src/main/java/com/cnlive/demo/videoqn/CNVideoViewActivity.java
| 1 | -package com.cnlive.demo.video; | 1 | +package com.cnlive.demo.videoqn; |
| 2 | 2 | ||
| 3 | import android.os.Bundle; | 3 | import android.os.Bundle; |
| 4 | import android.os.Handler; | 4 | import android.os.Handler; |
| @@ -9,15 +9,14 @@ import android.view.View; | @@ -9,15 +9,14 @@ import android.view.View; | ||
| 9 | import android.widget.ImageView; | 9 | import android.widget.ImageView; |
| 10 | import android.widget.Toast; | 10 | import android.widget.Toast; |
| 11 | 11 | ||
| 12 | -import com.cnlive.demo.video.utils.Utils; | ||
| 13 | -import com.cnlive.demo.video.widget.MediaController; | 12 | +import com.cnlive.demo.videoqn.model.ProgramLive; |
| 13 | +import com.cnlive.demo.videoqn.utils.Utils; | ||
| 14 | +import com.cnlive.demo.videoqn.widget.MediaController; | ||
| 14 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; | 15 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; |
| 15 | -import com.cnlive.libs.lib_cnvideo.base.IDataSource; | ||
| 16 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; | 16 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; |
| 17 | import com.cnlive.libs.lib_cnvideo.base.IVideoView; | 17 | import com.cnlive.libs.lib_cnvideo.base.IVideoView; |
| 18 | import com.cnlive.libs.lib_cnvideo.player.AVOptions; | 18 | import com.cnlive.libs.lib_cnvideo.player.AVOptions; |
| 19 | import com.cnlive.libs.lib_cnvideo.player.widget.CNVideoView; | 19 | import com.cnlive.libs.lib_cnvideo.player.widget.CNVideoView; |
| 20 | -import com.cnlive.libs.util.Config; | ||
| 21 | 20 | ||
| 22 | /** | 21 | /** |
| 23 | * This is a demo activity of PLVideoView | 22 | * This is a demo activity of PLVideoView |
| @@ -90,22 +89,7 @@ public class CNVideoViewActivity extends VideoPlayerBaseActivity { | @@ -90,22 +89,7 @@ public class CNVideoViewActivity extends VideoPlayerBaseActivity { | ||
| 90 | mVideoView.setVideoPath(mVideoPath); | 89 | mVideoView.setVideoPath(mVideoPath); |
| 91 | 90 | ||
| 92 | // //播放视讯云视频 | 91 | // //播放视讯云视频 |
| 93 | -// mVideoView.setDataSource(new IDataSource() { | ||
| 94 | -// @Override | ||
| 95 | -// public String getId() { | ||
| 96 | -// return "20161126"; | ||
| 97 | -// } | ||
| 98 | -// | ||
| 99 | -// @Override | ||
| 100 | -// public String getType() { | ||
| 101 | -// return Config.TYPE_VOD; | ||
| 102 | -// } | ||
| 103 | -// | ||
| 104 | -// @Override | ||
| 105 | -// public String getRate() { | ||
| 106 | -// return Config.TYPE_PLAY_RATE_2; | ||
| 107 | -// } | ||
| 108 | -// }, false); | 92 | +// mVideoView.setDataSource(new ProgramLive(), false); |
| 109 | 93 | ||
| 110 | // You can also use a custom `MediaController` widget | 94 | // You can also use a custom `MediaController` widget |
| 111 | mMediaController = new MediaController(this, false, isLiveStreaming == 1); | 95 | mMediaController = new MediaController(this, false, isLiveStreaming == 1); |
app/src/main/java/com/cnlive/demo/video/MainActivity.java renamed to app/src/main/java/com/cnlive/demo/videoqn/MainActivity.java
| 1 | -package com.cnlive.demo.video; | 1 | +package com.cnlive.demo.videoqn; |
| 2 | 2 | ||
| 3 | import android.app.Activity; | 3 | import android.app.Activity; |
| 4 | import android.content.Intent; | 4 | import android.content.Intent; |
| @@ -13,8 +13,6 @@ import android.widget.TextView; | @@ -13,8 +13,6 @@ import android.widget.TextView; | ||
| 13 | 13 | ||
| 14 | import com.cnlive.libs.lib_cnvideo.NetworkManager; | 14 | import com.cnlive.libs.lib_cnvideo.NetworkManager; |
| 15 | 15 | ||
| 16 | -import java.net.UnknownHostException; | ||
| 17 | - | ||
| 18 | public class MainActivity extends AppCompatActivity { | 16 | public class MainActivity extends AppCompatActivity { |
| 19 | 17 | ||
| 20 | private static final String DEFAULT_TEST_URL = "rtmp://live.hkstv.hk.lxdns.com/live/hks"; | 18 | private static final String DEFAULT_TEST_URL = "rtmp://live.hkstv.hk.lxdns.com/live/hks"; |
app/src/main/java/com/cnlive/demo/video/VideoApplication.java renamed to app/src/main/java/com/cnlive/demo/videoqn/VideoApplication.java
| 1 | -package com.cnlive.demo.video; | 1 | +package com.cnlive.demo.videoqn; |
| 2 | 2 | ||
| 3 | import android.app.Application; | 3 | import android.app.Application; |
| 4 | 4 | ||
| @@ -12,6 +12,6 @@ public class VideoApplication extends Application{ | @@ -12,6 +12,6 @@ public class VideoApplication extends Application{ | ||
| 12 | @Override | 12 | @Override |
| 13 | public void onCreate() { | 13 | public void onCreate() { |
| 14 | super.onCreate(); | 14 | super.onCreate(); |
| 15 | - Config.init(this, "60_irn9edco29", "69fe70bda67e059286ad509d9f5377f815955645b52f94"); | 15 | + Config.init(this, "60_iwoodaqi22", "52b31aebc17b4af7467d25c974b9348accb044d76ff82a"); |
| 16 | } | 16 | } |
| 17 | } | 17 | } |
app/src/main/java/com/cnlive/demo/video/VideoFileActivity.java renamed to app/src/main/java/com/cnlive/demo/videoqn/VideoFileActivity.java
app/src/main/java/com/cnlive/demo/video/VideoPlayerBaseActivity.java renamed to app/src/main/java/com/cnlive/demo/videoqn/VideoPlayerBaseActivity.java
app/src/main/java/com/cnlive/demo/video/VideoViewActivity.java renamed to app/src/main/java/com/cnlive/demo/videoqn/VideoViewActivity.java
| 1 | -package com.cnlive.demo.video; | 1 | +package com.cnlive.demo.videoqn; |
| 2 | 2 | ||
| 3 | import android.content.Intent; | 3 | import android.content.Intent; |
| 4 | import android.content.pm.ActivityInfo; | 4 | import android.content.pm.ActivityInfo; |
| @@ -12,8 +12,8 @@ import android.view.WindowManager; | @@ -12,8 +12,8 @@ import android.view.WindowManager; | ||
| 12 | import android.widget.Button; | 12 | import android.widget.Button; |
| 13 | import android.widget.Toast; | 13 | import android.widget.Toast; |
| 14 | 14 | ||
| 15 | -import com.cnlive.demo.video.widget.AspectLayout; | ||
| 16 | -import com.cnlive.demo.video.widget.MediaController; | 15 | +import com.cnlive.demo.videoqn.widget.AspectLayout; |
| 16 | +import com.cnlive.demo.videoqn.widget.MediaController; | ||
| 17 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; | 17 | import com.cnlive.libs.lib_cnvideo.base.IAVOptions; |
| 18 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; | 18 | import com.cnlive.libs.lib_cnvideo.base.IMediaPlayer; |
| 19 | import com.cnlive.libs.lib_cnvideo.base.Util; | 19 | import com.cnlive.libs.lib_cnvideo.base.Util; |
app/src/main/java/com/cnlive/demo/videoqn/model/ProgramLive.java
0 → 100644
| 1 | +package com.cnlive.demo.videoqn.model; | ||
| 2 | + | ||
| 3 | +import com.cnlive.libs.lib_cnvideo.base.IDataSource; | ||
| 4 | +import com.cnlive.libs.util.Config; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 直播 | ||
| 8 | + * Created by bjwan on 12/14/2016. | ||
| 9 | + */ | ||
| 10 | + | ||
| 11 | +public class ProgramLive implements IDataSource{ | ||
| 12 | + | ||
| 13 | + //返回直播视频ID | ||
| 14 | + @Override | ||
| 15 | + public String getId() { | ||
| 16 | + return "news"; | ||
| 17 | + } | ||
| 18 | + | ||
| 19 | + //返回视频类型 live | ||
| 20 | + @Override | ||
| 21 | + public String getType() { | ||
| 22 | + return Config.TYPE_LIVE; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + //返回视频码率 | ||
| 26 | + @Override | ||
| 27 | + public String getRate() { | ||
| 28 | + return Config.TYPE_PLAY_RATE_2; | ||
| 29 | + } | ||
| 30 | +} |
app/src/main/java/com/cnlive/demo/videoqn/model/ProgramVod.java
0 → 100644
| 1 | +package com.cnlive.demo.videoqn.model; | ||
| 2 | + | ||
| 3 | +import com.cnlive.libs.lib_cnvideo.base.IDataSource; | ||
| 4 | +import com.cnlive.libs.util.Config; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * Created by bjwan on 12/14/2016. | ||
| 8 | + */ | ||
| 9 | + | ||
| 10 | +public class ProgramVod implements IDataSource { | ||
| 11 | + //返回点播视频ID | ||
| 12 | + @Override | ||
| 13 | + public String getId() { | ||
| 14 | + return "117_0005701481101785734a"; | ||
| 15 | + } | ||
| 16 | + | ||
| 17 | + //返回视频类型 vod | ||
| 18 | + @Override | ||
| 19 | + public String getType() { | ||
| 20 | + return Config.TYPE_VOD; | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + //返回视频码率 | ||
| 24 | + @Override | ||
| 25 | + public String getRate() { | ||
| 26 | + return Config.TYPE_PLAY_RATE_2; | ||
| 27 | + } | ||
| 28 | +} |
app/src/main/java/com/cnlive/demo/video/utils/Utils.java renamed to app/src/main/java/com/cnlive/demo/videoqn/utils/Utils.java
app/src/main/java/com/cnlive/demo/video/widget/AspectLayout.java renamed to app/src/main/java/com/cnlive/demo/videoqn/widget/AspectLayout.java
app/src/main/java/com/cnlive/demo/video/widget/MediaController.java renamed to app/src/main/java/com/cnlive/demo/videoqn/widget/MediaController.java
app/src/main/res/layout/activity_video_view.xml
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | android:layout_height="match_parent" | 4 | android:layout_height="match_parent" |
| 5 | android:background="@color/background_material_light"> | 5 | android:background="@color/background_material_light"> |
| 6 | 6 | ||
| 7 | - <com.cnlive.demo.video.widget.AspectLayout | 7 | + <com.cnlive.demo.videoqn.widget.AspectLayout |
| 8 | android:id="@+id/aspect_layout" | 8 | android:id="@+id/aspect_layout" |
| 9 | android:layout_width="match_parent" | 9 | android:layout_width="match_parent" |
| 10 | android:layout_height="match_parent"> | 10 | android:layout_height="match_parent"> |
| @@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
| 18 | android:layout_alignParentRight="true" | 18 | android:layout_alignParentRight="true" |
| 19 | android:layout_alignParentTop="true" | 19 | android:layout_alignParentTop="true" |
| 20 | android:layout_centerInParent="true" /> | 20 | android:layout_centerInParent="true" /> |
| 21 | - </com.cnlive.demo.video.widget.AspectLayout> | 21 | + </com.cnlive.demo.videoqn.widget.AspectLayout> |
| 22 | 22 | ||
| 23 | <Button | 23 | <Button |
| 24 | android:id="@+id/back_btn" | 24 | android:id="@+id/back_btn" |
app/src/test/java/com/cnlive/demo/video/ExampleUnitTest.java renamed to app/src/test/java/com/cnlive/demo/videoqn/ExampleUnitTest.java
doc/Android播放文档.pdf
0 → 100644
No preview for this file type