Browse Source

modift picture topic

1145873331@qq.com 6 years ago
parent
commit
32effd4aa2

+ 131 - 4
app/src/main/java/com/electric/chargingpile/activity/PublishTopicActivity.java

@ -19,7 +19,9 @@ import android.widget.EditText;
19 19
import android.widget.ImageView;
20 20
import android.widget.RelativeLayout;
21 21
import android.widget.TextView;
22
import android.widget.Toast;
22 23

24
import com.blankj.utilcode.util.ToastUtils;
23 25
import com.bumptech.glide.Glide;
24 26
import com.bumptech.glide.load.DataSource;
25 27
import com.bumptech.glide.load.engine.GlideException;
@ -27,17 +29,31 @@ import com.bumptech.glide.request.RequestListener;
27 29
import com.bumptech.glide.request.RequestOptions;
28 30
import com.bumptech.glide.request.target.Target;
29 31
import com.electric.chargingpile.R;
32
import com.electric.chargingpile.application.MainApplication;
33
import com.electric.chargingpile.data.AuthSignBean;
30 34
import com.electric.chargingpile.data.TalkRecommendBean;
31 35
import com.electric.chargingpile.util.BarColorUtil;
36
import com.electric.chargingpile.util.JsonUtils;
37
import com.electric.chargingpile.util.ToastUtil;
32 38
import com.luck.picture.lib.PictureSelector;
33 39
import com.luck.picture.lib.compress.Luban;
34 40
import com.luck.picture.lib.config.PictureConfig;
35 41
import com.luck.picture.lib.config.PictureMimeType;
36 42
import com.luck.picture.lib.entity.LocalMedia;
37 43
import com.umeng.analytics.MobclickAgent;
44
import com.upyun.library.common.UploadEngine;
45
import com.upyun.library.listener.UpCompleteListener;
46
import com.upyun.library.listener.UpProgressListener;
47
import com.zhy.http.okhttp.OkHttpUtils;
48
import com.zhy.http.okhttp.callback.StringCallback;
38 49

39 50
import java.io.File;
51
import java.util.ArrayList;
52
import java.util.HashMap;
40 53
import java.util.List;
54
import java.util.Map;
55

56
import okhttp3.Call;
41 57

42 58
public class PublishTopicActivity extends Activity implements OnClickListener {
43 59
    Context mContext;
@ -59,7 +75,7 @@ public class PublishTopicActivity extends Activity implements OnClickListener {
59 75

60 76

61 77
    public static final String IMAGE_CACHE = CACHE_DIR + "/cache/image/";
62

78
    LocalMedia media;
63 79

64 80
    @Override
65 81
    protected void onCreate(Bundle savedInstanceState) {
@ -126,6 +142,15 @@ public class PublishTopicActivity extends Activity implements OnClickListener {
126 142
                finish();
127 143
                break;
128 144
            case R.id.publishtopic_publish:
145
                if (media == null) {
146
                    ToastUtils.showLong("请选择视频!");
147
                    return;
148
                }
149
                if (talkRecommendBean == null) {
150
                    ToastUtils.showLong("请选择话题!");
151
                    return;
152
                }
153
                getYouPaiData();
129 154
                break;
130 155

131 156
            case R.id.publishtopic_choose_topic:
@ -167,19 +192,121 @@ public class PublishTopicActivity extends Activity implements OnClickListener {
167 192
            case R.id.item_video_delete:
168 193
                mItemVideoLl.setVisibility(View.GONE);
169 194
                mPublishtopicGv.setVisibility(View.VISIBLE);
195
                media = null;
170 196
                break;
171 197
            default:
172 198
                break;
173 199
        }
174 200
    }
175 201

176
    final int reqTopic = -100;
202
    private void getYouPaiData() {
203
        String fileNames = media.getPath().substring(media.getPath().lastIndexOf("/") + 1);
204
        String url = MainApplication.urlNew + "/topic/sign.do";
205
        Map<String, String> map = new HashMap<>();
206
        map.put("fileNames", fileNames);
207
        Log.e("fileNameDir fileName", fileNames);
208
        map.put("targetType", "23");//23视频/24图片
209
        OkHttpUtils
210
                .post()
211
                .params(map)
212
                .url(url)
213
                .build()
214
                .connTimeOut(6000)
215
                .readTimeOut(6000)
216
                .execute(new StringCallback() {
217
                    @Override
218
                    public void onError(Call call, Exception e) {
219
                    }
220

221
                    @Override
222
                    public void onResponse(String response) {
223
                        String rtnCode = JsonUtils.getKeyResult(response, "code");
224
                        if ("1000".equals(rtnCode)) {
225
                            String rtnMsg = JsonUtils.getKeyResult(response, "data");
226
                            ArrayList<AuthSignBean> signBeans = (ArrayList<AuthSignBean>) JsonUtils.parseToObjectList(rtnMsg, AuthSignBean.class);
227

228
                            if (null != signBeans && signBeans.size() > 0) {
229
                                    String sign = signBeans.get(0).sign;
230
                                    String policy = signBeans.get(0).policy;
231
                                    formUpload(media.getPath(), sign, policy);
232
                            }
233
                        }
234
                    }
235
                });
236

237
    }
238

239
    /**
240
     * 表单上传
241
     *
242
     * @param SAMPLE_PIC_FILE
243
     * @param sign
244
     * @param policyServer
245
     */
246
    private void formUpload(String SAMPLE_PIC_FILE, String sign, String policyServer) {
247
        File temp = new File(SAMPLE_PIC_FILE);
248
//        //进度回调,可为空
249
        UpProgressListener progressListener = new UpProgressListener() {
250
            @Override
251
            public void onRequestProgress(long bytesWrite, long contentLength) {
252
            }
253
        };
254

255
        //结束回调,不可为空
256
        UpCompleteListener completeListener = new UpCompleteListener() {
257
            @Override
258
            public void onComplete(boolean isSuccess, String result) {
259
                if (isSuccess) {
260
                    requestPublishServer("["+result+"]");
261
                }
262
            }
263
        };
264

265
        //表单上传(服务器签名方式)
266
        UploadEngine.getInstance().formUpload(temp, policyServer, "d1evvideo01", sign, completeListener,
267
                progressListener);
268

269
    }
270

271
    private void requestPublishServer(String urls) {
272
        String url = MainApplication.urlNew + "/topic/publish.do";
273
        Map<String, String> map = new HashMap<>();
274
        map.put("content", mPublishtopicCon.getText().toString());
275
        map.put("urls", urls);
276
        map.put("topicId", talkRecommendBean.targetId + "");
277
        if (MainApplication.isLogin()) {
278
            map.put("userId", MainApplication.userId);
279
            map.put("appToken", MainApplication.messageToken);
280
        }
281
        OkHttpUtils.post().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() {
282
            @Override
283
            public void onError(Call call, Exception e) {
284
                ToastUtil.showToast(getApplicationContext(), "发布失败,请重试", Toast.LENGTH_SHORT);
285
            }
286

287
            @Override
288
            public void onResponse(String response) {
289
                String rtnCode = JsonUtils.getKeyResult(response, "code");
290
                if ("1000".equals(rtnCode)) {
291
                    ToastUtil.showToast(getApplicationContext(), "发布成功", Toast.LENGTH_SHORT);
292
                } else {
293
                    String message = JsonUtils.getKeyResult(response, "desc");
294
                    ToastUtil.showToast(getApplicationContext(), message, Toast.LENGTH_SHORT);
295
                }
296
            }
297
        });
298
    }
299

300

301
    final int reqTopic = 100;
177 302

178 303
    TalkRecommendBean talkRecommendBean = null;
179 304

180 305
    @Override
181 306
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
182
        if (requestCode == -100 && resultCode == -100) {
307
        super.onActivityResult(requestCode, resultCode, data);
308

309
        if (requestCode == reqTopic && resultCode == -100) {
183 310
            talkRecommendBean = (TalkRecommendBean) data.getSerializableExtra("topic");
184 311
            if (talkRecommendBean != null) {
185 312
                mPublishtopicChooseTopic.setText("# " + talkRecommendBean.name);
@ -188,7 +315,7 @@ public class PublishTopicActivity extends Activity implements OnClickListener {
188 315
        } else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) {
189 316
            List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
190 317
            if (selectList != null && selectList.size() > 0) {
191
                LocalMedia media = selectList.get(0);
318
                media = selectList.get(0);
192 319
                if (TextUtils.isEmpty(media.getPath())) {
193 320
                    return;
194 321
                }

+ 22 - 3
app/src/main/java/com/electric/chargingpile/application/MainApplication.java

@ -21,6 +21,8 @@ import com.electric.chargingpile.gen.DaoMaster;
21 21
import com.electric.chargingpile.gen.DaoSession;
22 22
import com.electric.chargingpile.manager.ProfileManager;
23 23
import com.electric.chargingpile.util.SharedPreferencesHelper;
24
import com.mabeijianxi.smallvideorecord2.DeviceUtils;
25
import com.mabeijianxi.smallvideorecord2.JianXiCamera;
24 26
import com.mob.MobSDK;
25 27
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
26 28
import com.nostra13.universalimageloader.core.DisplayImageOptions;
@ -201,7 +203,7 @@ public class MainApplication extends MultiDexApplication {
201 203

202 204
        loginRemind();
203 205
        setFestival();
204

206
        initSmallVideo();
205 207
    }
206 208

207 209
    public static MainApplication getInstance() {
@ -219,11 +221,28 @@ public class MainApplication extends MultiDexApplication {
219 221
        return mCurrentCity;
220 222
    }
221 223

222
    private static void setSph() {
223

224
    /**
225
     * 视频的初始化
226
     */
227
    public static void initSmallVideo() {
228
        // 设置拍摄视频缓存路径
229
        File dcim = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
230
        if (DeviceUtils.isZte()) {
231
            if (dcim.exists()) {
232
                JianXiCamera.setVideoCachePath(dcim + "/mabeijianxi/");
233
            } else {
234
                JianXiCamera.setVideoCachePath(dcim.getPath().replace("/sdcard/",
235
                        "/sdcard-ext/") + "/mabeijianxi/");
236
            }
237
        } else {
238
            JianXiCamera.setVideoCachePath(dcim + "/mabeijianxi/");
239
        }
240
        // 初始化拍摄,遇到问题可选择开启此标记,以方便生成日志
241
        //JianXiCamera.initialize(false, null);
224 242
    }
225 243

226 244

245

227 246
    public static void initImageLoader(Context context) {
228 247
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPoolSize(5).threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory()
229 248
                .discCacheFileNameGenerator(new Md5FileNameGenerator()).discCacheSize(50 * 1024 * 1024).memoryCacheSize(5 * 1024 * 1024).build();

+ 5 - 6
app/src/main/res/layout/activity_publishtopic.xml

@ -49,7 +49,6 @@
49 49
            android:layout_width="match_parent"
50 50
            android:layout_height="wrap_content"
51 51
            android:orientation="vertical"
52
            android:layout_marginBottom="50dp"
53 52
            android:padding="15dp">
54 53
55 54
            <EditText
@ -72,17 +71,17 @@
72 71
73 72
            <RelativeLayout
74 73
                android:id="@+id/item_video_ll"
75
                android:visibility="gone"
76
                android:layout_marginBottom="20dp"
77 74
                android:layout_width="wrap_content"
78
                android:layout_height="wrap_content">
75
                android:layout_height="wrap_content"
76
                android:layout_marginBottom="100dp"
77
                android:visibility="gone">
79 78
80 79
                <ImageView
81 80
                    android:id="@+id/item_video"
82 81
                    android:layout_width="wrap_content"
83
                    android:minHeight="220dp"
82
                    android:layout_height="wrap_content"
84 83
                    android:minWidth="206dp"
85
                    android:layout_height="wrap_content"   />
84
                    android:minHeight="220dp" />
86 85
87 86
                <View
88 87
                    android:layout_width="40dp"

+ 3 - 24
videolibrary/picture_library/src/main/java/com/luck/picture/lib/PictureEditAudioActivity.java

@ -63,9 +63,9 @@ import static com.luck.picture.lib.tools.Constant.VIDEO_LENGTH_BYTE;
63 63
 */
64 64
public class PictureEditAudioActivity extends PictureBaseActivity implements View.OnClickListener {
65 65
66
    private static final long MIN_CUT_DURATION = 1000L;// 最小剪辑时间1s
66
    private static final long MIN_CUT_DURATION = 1500L;// 最小剪辑时间1s
67 67
    private static final long MAX_CUT_DURATION = 15 * 1000L;//视频最多剪切多长时间
68
    private static final int MAX_COUNT_RANGE = 10;//seekBar的区域内一共有多少张图片
68
    private static final int MAX_COUNT_RANGE = 15;//seekBar的区域内一共有多少张图片
69 69
70 70
    private static final String TAG = PictureEditAudioActivity.class.getSimpleName();
71 71
@ -427,28 +427,6 @@ public class PictureEditAudioActivity extends PictureBaseActivity implements Vie
427 427
                Log.e(TAG, "TANHQ===> ffmpeg裁剪 花时间: " + (System.currentTimeMillis() - startCropTime)
428 428
                        + ",  getVideoPath() = " + onlyCompressOverBean.getVideoPath());
429 429
430
//                startCompressTime = System.currentTimeMillis();
431
//                if (onlyCompressOverBean.getVideoPath() == null || TextUtils.isEmpty(onlyCompressOverBean.getVideoPath())) {
432
//                    return;
433
//                }
434
435
//                //压缩本地视频
436
//                LocalMediaConfig.Buidler builder = new LocalMediaConfig.Buidler();
437
//                LocalMediaConfig config = builder
438
//                        .setVideoPath(onlyCompressOverBean.getVideoPath())
439
//                        .captureThumbnailsTime(1)
440
//                        .doH264Compress(new AutoVBRMode(Constant.AutoVBRMode))
441
//                        .setFramerate(Constant.FRAMERATE)
442
//                        .setScale(Constant.SCALE)
443
//                        .build();
444
//
445
//
446
//                LocalMediaCompress localMediaCompress = new LocalMediaCompress(config);
447
//                final OnlyCompressOverBean onlyCompressOverBean11 = localMediaCompress.startCompress();
448
//
449
//                Log.e(TAG, "TANHQ===> ffmpeg 压缩花时间: " + (System.currentTimeMillis() - startCompressTime));
450
451
452 430
                runOnUiThread(new Runnable() {
453 431
                    @Override
454 432
                    public void run() {
@ -650,6 +628,7 @@ public class PictureEditAudioActivity extends PictureBaseActivity implements Vie
650 628
                        .setScale(Constant.SCALE_15)
651 629
                        .build();
652 630
631
653 632
                LocalMediaCompress localMediaCompress = new LocalMediaCompress(config);
654 633
                localMediaCompress.setVideoOriginalWitdhHeight(videoWidth, videoHeight);
655 634
                final OnlyCompressOverBean onlyCompressOverBean = localMediaCompress.startCompress();

+ 1 - 1
videolibrary/picture_library/src/main/java/com/luck/picture/lib/PicturePreviewActivity.java

@ -475,7 +475,7 @@ public class PicturePreviewActivity extends PictureBaseActivity implements View.
475 475
476 476
            rlSelectBarLayout.setVisibility(View.VISIBLE);
477 477
478
            if (media.getDuration() > 10 * 1000) {
478
            if (media.getDuration() > 15 * 1000) {
479 479
                video_layout.setVisibility(View.GONE);
480 480
                video_layout10.setVisibility(View.VISIBLE);
481 481

+ 2 - 2
videolibrary/picture_library/src/main/res/layout/activity_picture_edit_audio.xml

@ -47,7 +47,7 @@
47 47
            android:orientation="horizontal">
48 48
49 49
            <View
50
                android:layout_width="35dp"
50
                android:layout_width="25dp"
51 51
                android:layout_height="match_parent"
52 52
                android:background="#66000000" />
53 53
@ -60,7 +60,7 @@
60 60
                android:orientation="vertical" />
61 61
62 62
            <View
63
                android:layout_width="35dp"
63
                android:layout_width="25dp"
64 64
                android:layout_height="match_parent"
65 65
                android:background="#66000000" />
66 66
        </LinearLayout>