Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/contact/GroupImpl.kt
mzdluo123 5 anni fa
parent
commit
2936ce4066

+ 8 - 2
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/contact/GroupImpl.kt

@@ -449,11 +449,10 @@ internal class GroupImpl(
      * 上传一个语音消息以备发送.
      * 请注意,这是一个实验性api且随时会被删除
      * @throws EventCancelledException 当发送消息事件被取消
-     * @throws OverFileSizeMaxException 当图片文件过大而被服务器拒绝上传时. (最大大小约为 1 MB)
+     * @throws OverFileSizeMaxException 当语音文件过大而被服务器拒绝上传时. (最大大小约为 1 MB)
      */
     @JvmSynthetic
     @MiraiExperimentalAPI
-    @SinceMirai("1.2.0")
     override suspend fun uploadGroupVoice(input: InputStream): Voice {
         val content = ByteArray(input.available())
         input.read(content)
@@ -461,6 +460,13 @@ internal class GroupImpl(
             throw  OverFileSizeMaxException()
         }
         val md5 = MiraiPlatformUtils.md5(content)
+        val codec = with(content.copyOfRange(0, 10).toUHexString("")) {
+            when {
+                startsWith("2321414D52") -> 0             // amr
+                startsWith("02232153494C4B5F5633") -> 1  // silk V3
+                else -> 0                               // use amr by default
+            }
+        }
         return bot.network.run {
             val response: PttStore.GroupPttUp.Response.RequireUpload =
                 PttStore.GroupPttUp(bot.client, bot.id, id, md5, content.size.toLong()).sendAndExpect()

+ 1 - 1
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Group.kt

@@ -175,7 +175,7 @@ public abstract class Group : Contact(), CoroutineScope {
     /**
      * 上传一个语音消息以备发送.
      * 请手动关闭输入流
-     * 请使用mar格式
+     * 请使用amr或silk格式
      * 请注意,这是一个实验性api且随时会被删除
      * @throws EventCancelledException 当发送消息事件被取消
      * @throws OverFileSizeMaxException 当图片文件过大而被服务器拒绝上传时. (最大大小约为 1 MB)

+ 2 - 2
mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/message/SendImageUtilsJvm.kt

@@ -119,9 +119,9 @@ public suspend fun File.uploadAsImage(contact: Contact): Image {
 }
 
 /**
- * 在 [Dispatchers.IO] 中将文件作为语音上传后构造 [Image]
+ * 在 [Dispatchers.IO] 中将文件作为语音上传后构造 [Voice]
  * 请手动关闭输入流
- * 请使用mar格式
+ * 请使用amr或silk格式
  * 注意,这只是个实验性功能且随时可能会删除
  * @throws OverFileSizeMaxException
  */