Toggle navigation
Toggle navigation
This project
Loading...
Sign in
OnePoem
/
OnePoem-App
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Reason Pun
2022-04-30 21:56:13 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
02df5f546d02aac89663fe3eaea864fdd7cdcd90
02df5f54
1 parent
5d377a7b
todo 上传临境
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
67 additions
and
20 deletions
android/build.gradle
lib/main.dart
lib/net/http_api.dart
lib/poem/page/poem_publish.dart
lib/poem/page/poem_record_video.dart
lib/poem/page/poem_video_player.dart
pubspec.lock
android/build.gradle
View file @
02df5f5
buildscript
{
ext
.
kotlin_version
=
'1.6.
10
'
ext
.
kotlin_version
=
'1.6.
21
'
repositories
{
google
()
mavenCentral
()
...
...
lib/main.dart
View file @
02df5f5
...
...
@@ -33,7 +33,7 @@ import 'util/theme_utils.dart';
/// json to model
/// 安装
/// dependencies:
/// json_annotation: ^4.4.0
/// json_annotation: ^4.4.0
x
/// dev_dependencies:
/// json_serializable: ^6.1.3
/// build_runner: ^2.1.7
...
...
lib/net/http_api.dart
View file @
02df5f5
...
...
@@ -3,6 +3,7 @@ class HttpApi {
static
const
String
register
=
'register'
;
static
const
String
verify
=
'verify'
;
static
const
String
login
=
'login'
;
static
const
String
uploadVideo
=
'upload/video'
;
static
const
String
user
=
'user'
;
static
const
String
search
=
'search/repositories'
;
static
const
String
subscriptions
=
'users/simplezhli/subscriptions'
;
...
...
lib/poem/page/poem_publish.dart
View file @
02df5f5
import
'package:Parlando/net/dio_utils.dart'
;
import
'package:Parlando/net/http_api.dart'
;
import
'package:dio/dio.dart'
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_2d_amap/flutter_2d_amap.dart'
;
...
...
@@ -6,10 +9,10 @@ import 'package:Parlando/poem/widgets/lang_sort_bottom_sheet.dart';
import
'package:Parlando/res/resources.dart'
;
import
'package:Parlando/routers/fluro_navigator.dart'
;
import
'package:Parlando/routers/routers.dart'
;
import
'package:Parlando/widgets/click_item.dart'
;
import
'package:Parlando/widgets/my_app_bar.dart'
;
import
'package:Parlando/extension/int_extension.dart'
;
import
'package:path_provider/path_provider.dart'
;
import
'../poem_router.dart'
;
...
...
@@ -29,6 +32,8 @@ class _PoemPublishState extends State<PoemPublish> {
String
_address
=
'我在此地'
;
final
LangSortProvider
_provider
=
LangSortProvider
();
final
TextEditingController
_msgController
=
TextEditingController
();
@override
void
initState
()
{
super
.
initState
();
...
...
@@ -72,6 +77,7 @@ class _PoemPublishState extends State<PoemPublish> {
maxWidth:
double
.
infinity
,
),
child:
TextField
(
controller:
_msgController
,
maxLines:
10
,
decoration:
InputDecoration
(
contentPadding:
const
EdgeInsets
.
all
(
10.0
),
...
...
@@ -203,16 +209,51 @@ class _PoemPublishState extends State<PoemPublish> {
);
}
Future
<
dynamic
>
_getUploadVideo
()
async
{
final
directory
=
await
getApplicationDocumentsDirectory
();
dynamic
video
=
await
MultipartFile
.
fromFile
(
directory
.
path
+
"/"
+
widget
.
data
,
filename:
"xxx23.png"
);
return
video
;
}
Future
<
void
>
publishPoem
(
BuildContext
context
)
async
{
String
msg
=
_msgController
.
text
;
if
(
msg
.
isEmpty
)
{
msg
=
"读此一言,仿佛身临其境"
;
}
isPublishing
=
true
;
setState
(()
{});
// TODO 等待套入正式接口发布临境
await
Future
.
delayed
(
const
Duration
(
seconds:
2
),
()
{
NavigatorUtils
.
push
(
context
,
'
${PoemRouter.poemCompletePage}
?id=100'
,
_getUploadVideo
().
then
((
value
)
{
Map
<
String
,
dynamic
>
map
=
<
String
,
dynamic
>{
"video"
:
value
,
};
FormData
formData
=
FormData
.
fromMap
(
map
);
DioUtils
.
instance
.
asyncRequestNetwork
(
Method
.
post
,
HttpApi
.
uploadVideo
,
params:
formData
,
onSuccess:
(
data
)
{
print
(
data
);
//TODO 上传视频成功之后创建临境
isPublishing
=
false
;
},
onError:
(
code
,
msg
)
{
isPublishing
=
false
;
setState
(()
{});
},
);
});
// TODO 等待套入正式接口发布临境
// await Future.delayed(const Duration(seconds: 2), () {
// NavigatorUtils.push(
// context,
// '${PoemRouter.poemCompletePage}?id=100',
// );
// });
}
Future
<
bool
>
_isExit
()
async
{
...
...
lib/poem/page/poem_record_video.dart
View file @
02df5f5
...
...
@@ -255,7 +255,7 @@ class _PoemRecordVideoPageState extends State<PoemRecordVideoPage>
NavigatorUtils
.
push
(
context
,
'
${PoemRouter.poemVideoPlayer}
?url=
100
'
,
'
${PoemRouter.poemVideoPlayer}
?url=
$currentUnix
.
$fileFormat
'
,
);
}
catch
(
e
)
{
// print(e);
...
...
lib/poem/page/poem_video_player.dart
View file @
02df5f5
...
...
@@ -4,6 +4,7 @@ import 'package:Parlando/res/resources.dart';
import
'package:Parlando/routers/fluro_navigator.dart'
;
import
'package:Parlando/widgets/my_app_bar.dart'
;
import
'package:Parlando/extension/int_extension.dart'
;
import
'package:path_provider/path_provider.dart'
;
import
'../poem_router.dart'
;
...
...
@@ -26,16 +27,22 @@ class _PoemVideoPlayerState extends State<PoemVideoPlayer> {
_PoemVideoPlayerState
();
Future
<
String
>
_getDir
()
async
{
final
directory
=
await
getApplicationDocumentsDirectory
();
return
directory
.
path
;
}
@override
void
initState
()
{
super
.
initState
();
// player.setDataSource(widget.url, autoPlay: true);
//TODO 替换真实URL
player
.
setDataSource
(
"asset:///assets/data/video_01.mp4"
,
autoPlay:
true
,
);
player
.
setLoop
(
0
);
_getDir
().
then
((
value
)
{
String
path
=
"
$value
/"
+
widget
.
url
;
player
.
setDataSource
(
path
,
autoPlay:
true
,
);
player
.
setLoop
(
0
);
});
}
@override
...
...
@@ -112,10 +119,8 @@ class _PoemVideoPlayerState extends State<PoemVideoPlayer> {
child:
ElevatedButton
(
onPressed:
()
{
NavigatorUtils
.
push
(
context
,
'
${PoemRouter.poemPublish}
?data=100'
,
clearStack:
true
);
context
,
'
${PoemRouter.poemPublish}
?data='
+
widget
.
url
,
clearStack:
true
);
},
child:
Text
(
"下一步"
,
...
...
pubspec.lock
View file @
02df5f5
This diff is collapsed. Click to expand it.
Please
register
or
login
to post a comment