From 524abed53193c67683a363ce0f12fe4aa98323a0 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期二, 28 五月 2024 15:28:55 +0800
Subject: [PATCH] 行程录音,接送机

---
 app/src/main/java/com/future/driver/utils/OSSUtil.java |   66 +++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/future/driver/utils/OSSUtil.java b/app/src/main/java/com/future/driver/utils/OSSUtil.java
index 257748c..b320a6c 100644
--- a/app/src/main/java/com/future/driver/utils/OSSUtil.java
+++ b/app/src/main/java/com/future/driver/utils/OSSUtil.java
@@ -15,6 +15,7 @@
 import com.alibaba.sdk.android.oss.internal.OSSAsyncTask;
 import com.alibaba.sdk.android.oss.model.PutObjectRequest;
 import com.alibaba.sdk.android.oss.model.PutObjectResult;
+import com.future.driver.base.MyApplication;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -122,6 +123,56 @@
         mTasks.add(task);
     }
 
+    private void uploadVoice(final String url, final OSSUploadCallBack callBack) {
+        String recordOrderId = MyApplication.Companion.getRecordOrderId();
+        String recordOrderType = MyApplication.Companion.getRecordOrderType();
+        final String objectKey = "driver/record/" +recordOrderType+"_"+recordOrderId+"_"+url.substring(url.lastIndexOf("/")+1);
+        PutObjectRequest put = new PutObjectRequest(bucketName, objectKey, url);
+        put.setProgressCallback(new OSSProgressCallback<PutObjectRequest>() {
+            long temp = 0;
+            @Override
+            public void onProgress(PutObjectRequest request, long currentSize, long totalSize) {
+                CURRENT_SIZE += currentSize - temp;
+                temp = currentSize;
+                callBack.onSizeProgress(CURRENT_SIZE, TOTAL_SIZE);
+            }
+        });
+
+        OSSAsyncTask<PutObjectResult> task = mOss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
+            @Override
+            public void onSuccess(PutObjectRequest request, PutObjectResult result) {
+                mActivity.runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        URLs.add(mOss.presignPublicObjectURL(bucketName, objectKey));
+                        callBack.onFinishWithSize(URLs.get(0),CURRENT_SIZE);
+                        mTasks.clear();
+                    }
+                });
+
+            }
+
+
+            @Override
+            public void onFailure(PutObjectRequest request, ClientException
+                    clientException, ServiceException serviceException) {
+                // 请求异常
+                if (clientException != null) {
+                    clientException.printStackTrace();
+                    // 本地异常如网络异常等
+                    callBack.onFial("网络异常");
+                }
+                if (serviceException != null) {
+                    serviceException.printStackTrace();
+                    // 服务异常
+                    callBack.onFial("服务器异常");
+                }
+
+            }
+        });
+        mTasks.add(task);
+    }
+
 
     /**
      * 单文件上传
@@ -137,6 +188,17 @@
         }
         TOTAL_COUNT = single.size();
         upload(single, true, callBack);
+    }
+
+
+    /**
+     * 单文件上传
+     *
+     * @param url      the url
+     * @param callBack the call back
+     */
+    public void uploadSingleWithSize(String url, OSSUploadCallBack callBack) {
+        uploadVoice(url,  callBack);
     }
 
     /**
@@ -158,6 +220,10 @@
         public void onFinish(String url) {
 
         }
+        //单张上传成功
+        public void onFinishWithSize(String url,Long size) {
+
+        }
 
         //批量上传成功
         public void onFinish(ArrayList<String> urls) {

--
Gitblit v1.7.1