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

# Conflicts:
#	mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/contact/GroupImpl.kt
This commit is contained in:
mzdluo123 2020-08-18 10:37:41 +08:00
commit 2936ce4066
No known key found for this signature in database
GPG Key ID: 9F7BC2C154107A1D
3 changed files with 11 additions and 5 deletions

View File

@ -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()

View File

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

View File

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