Skip to content

Commit 5193b21

Browse files
committed
解决IOS设置loop属性无效问题
1 parent 9c7a7fa commit 5193b21

File tree

4 files changed

+81
-36
lines changed

4 files changed

+81
-36
lines changed

README.md

Lines changed: 73 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
线上项目应用运行效果:
22
http://file.jinxianyun.com/tencentplayer.MP4
33
# 1.Setup
4-
```
5-
flutter_tencentplayer: ${last_version}
6-
7-
or
8-
9-
flutter_tencentplayer:
10-
git:
11-
url: https://github.com/qq326646683/flutter_tencentplayer.git
12-
```
4+
5+
```
6+
flutter_tencentplayer: ${last_version}
7+
8+
or
9+
10+
flutter_tencentplayer:
11+
git:
12+
url: https://github.com/qq326646683/flutter_tencentplayer.git
13+
```
1314
> For Android
1415
1516
1. project/android/build.gradle 添加依赖的aar:
16-
```gradle
17+
18+
```
1719
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
1820
def plugins = new Properties()
1921
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
@@ -33,25 +35,26 @@ allprojects {
3335
```
3436

3537
2. AndroidManifest.xml 声明权限:
36-
```
37-
<!--网络权限-->
38-
39-
<uses-permission android:name="android.permission.INTERNET" />
40-
41-
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
42-
43-
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
4438

45-
<!--点播播放器悬浮窗权限-->
46-
47-
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
48-
49-
<!--存储-->
50-
51-
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
52-
53-
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
54-
```
39+
```
40+
<!--网络权限-->
41+
42+
<uses-permission android:name="android.permission.INTERNET" />
43+
44+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
45+
46+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
47+
48+
<!--点播播放器悬浮窗权限-->
49+
50+
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
51+
52+
<!--存储-->
53+
54+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
55+
56+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
57+
```
5558
5659
> For Ios
5760
@@ -69,9 +72,22 @@ allprojects {
6972
7073
# 2.Usage(TencentPlayer)
7174
72-
> 和video_player api相似,支持直播源,视频跳转,切换视频源,边下边播放,清晰度切换,设置播放速度
75+
flutter_tencentplayer 提供video_player 相似api
76+
77+
## 支持功能
78+
79+
1. 支持直播源
80+
2. 视频跳转
81+
3. 切换视频源
82+
4. 边下边播放
83+
5. 清晰度切换
84+
6. 设置播放速度
85+
86+
### 1.初始化播放器
87+
88+
提供 asset、network、filePath、fileId四种方式播放
89+
7390
74-
### 1.初始化播放器,支持asset、network、filePath、fileId四种方式播放
7591
```dart
7692
TencentPlayerController _controller;
7793
@@ -97,6 +113,7 @@ initState() {
97113
```
98114

99115
### 2.<font color=#0000FF >PlayerConfig</font> (播放器配置参数 )
116+
100117
```dart
101118
_controller = TencentPlayerController.network(url, playerConfig: PlayerConfig())
102119
@@ -135,16 +152,21 @@ bitrateIndex | int | 视频清晰度
135152
### 4.<font color=#0000FF >Event</font> (播放器事件)
136153

137154
a.跳转进度
155+
138156
```dart
139157
_controller.seekTo(Duration(seconds: 5));
140158
141159
```
160+
142161
b.设置播放速度
162+
143163
```dart
144164
_controller.setRate(1.5); // 1.0 ~ 2.0
145165
146166
```
167+
147168
c.切换播放源
169+
148170
```dart
149171
controller?.removeListener(listener);
150172
controller?.pause();
@@ -154,10 +176,12 @@ controller?.initialize().then((_) {
154176
});
155177
controller?.addListener(listener);
156178
```
179+
157180
d.切换清晰度(实质就是切换播放源)
158181

159182

160183
# 3.Usage(Download)
184+
161185
> 离线下载, 支持断点续传(这里只支持m3u8视频、fileId), 支持多文件同时下载
162186
163187
### 1.初始化下载器
@@ -182,17 +206,22 @@ initState() {
182206
### 2.<font color=#0000FF >Event</font> (下载事件)
183207

184208
a. 下载
209+
185210
```dart
186211
_downloadController.dowload("4564972819220421305", quanlity: 2);
187212
// _downloadController.dowload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");
188213
```
214+
189215
b. 暂停下载
216+
190217
```dart
191218
_downloadController.pauseDownload("4564972819220421305");
192219
// _downloadController.stopDownload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");
193220
194221
```
222+
195223
b. 取消下载
224+
196225
```dart
197226
_downloadController.cancelDownload("4564972819220421305");
198227
// _downloadController.cancelDownload("http://1253131631.vod2.myqcloud.com/26f327f9vodgzp1253131631/f4bdff799031868222924043041/playlist.m3u8");
@@ -223,6 +252,20 @@ error | String | 下载的错误信息
223252

224253

225254

255+
# 5.更新内容
256+
257+
1,升级IOS LiteAVSDK 6.8.7969
258+
259+
260+
# 6.解决的问题
261+
262+
1,解决切换视频黑屏
263+
2,解决IOS设置loop属性无效问题
264+
3,再就是ios的必须设置了autoPlay为true才能播放,设置了false后,在后面执行 controller.play()也不会播放
265+
266+
267+
268+
226269

227270

228271

example/ios/Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ PODS:
33
- flutter_tencentplayer (0.0.1):
44
- Flutter
55
- TXLiteAVSDK_Player
6-
- TXLiteAVSDK_Player (6.6.7460)
6+
- TXLiteAVSDK_Player (6.8.7969)
77

88
DEPENDENCIES:
99
- Flutter (from `.symlinks/flutter/ios`)
1010
- flutter_tencentplayer (from `.symlinks/plugins/flutter_tencentplayer/ios`)
1111

1212
SPEC REPOS:
13-
https://github.com/CocoaPods/Specs.git:
13+
trunk:
1414
- TXLiteAVSDK_Player
1515

1616
EXTERNAL SOURCES:
@@ -22,8 +22,8 @@ EXTERNAL SOURCES:
2222
SPEC CHECKSUMS:
2323
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
2424
flutter_tencentplayer: 7fe3de00727b08ad732b3ac7fa01fb7664691610
25-
TXLiteAVSDK_Player: 7f55053b2e03e0f58f366122693f88dfbb97e3cd
25+
TXLiteAVSDK_Player: a3799add98c6802e382972d98cc0e7bacb50984f
2626

2727
PODFILE CHECKSUM: 7fb83752f59ead6285236625b82473f90b1cb932
2828

29-
COCOAPODS: 1.8.4
29+
COCOAPODS: 1.8.0

ios/Classes/FLTFrameUpdater.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ - (FLTFrameUpdater*)initWithRegistry:(NSObject<FlutterTextureRegistry>*)registry
1616
}
1717

1818
-(void)refreshDisplay{
19-
[_registry textureFrameAvailable:_textureId];
19+
[_registry textureFrameAvailable:self.textureId];
2020
}
2121
@end

ios/Classes/FLTVideoPlayer.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ - (instancetype)initWithCall:(FlutterMethodCall *)call frameUpdater:(FLTFrameUpd
3939
playConfig.connectRetryInterval = 3;
4040
playConfig.timeout = 10 ;
4141

42-
// mVodPlayer.setLoop((boolean) call.argument("loop"));
4342

4443

4544
id headers = argsMap[@"headers"];
@@ -80,6 +79,9 @@ - (instancetype)initWithCall:(FlutterMethodCall *)call frameUpdater:(FLTFrameUpd
8079
[_txPlayer setVideoProcessDelegate:self];
8180
[_txPlayer setStartTime:startPosition];
8281

82+
BOOL loop = [argsMap[@"loop"] boolValue];
83+
[_txPlayer setLoop: loop];
84+
8385
id pathArg = argsMap[@"uri"];
8486
if(pathArg!=nil&&pathArg!=NULL&&![@"" isEqualToString:pathArg]&&pathArg!=[NSNull null]){
8587
NSLog(@"播放器启动方式1 play");

0 commit comments

Comments
 (0)