OfflineAudio

interface OfflineAudio : Audio

离线语音消息.

OfflineAudio 仅拥有协议上必要的五个属性:

OfflineAudio 可由本地 ExternalResource 经过 AudioSupported.uploadAudio 上传到服务器得到, 故无下载链接.

OfflineAudio 同时还可以用做自定义构造 Audio 实例, 使用 OfflineAudio.Factory.create 可通过上述五个必要参数获得 OfflineAudio 实例.

序列化支持

OfflineAudio 支持序列化. 可使用 MessageChain.serializeToJsonString 以及 MessageChain.deserializeFromJsonString. 也可以在 MessageSerializers.serializersModule 获取到 OfflineAudio 的 KSerializer.

要获取更多有关序列化的信息, 参阅 MessageSerializers.

不建议自行实现该接口

OfflineAudio 不稳定, 将来可能会增加新的抽象属性或方法而导致不兼容. 仅可以使用该接口而不能继承或实现它.

Since

2.7

Types

Link copied to clipboard
interface Factory
Link copied to clipboard
object Key : AbstractPolymorphicMessageKey<Audio, OfflineAudio>

Functions

Link copied to clipboard
open fun contentEquals(another: String, ignoreCase: Boolean = false): Boolean

判断内容是否与 another 相等.

open fun contentEquals(another: Message, ignoreCase: Boolean = false): Boolean

判断内容是否与 another 相等即 thisanothercontentToString 相等.

open fun contentEquals(    another: Message,     ignoreCase: Boolean = false,     strict: Boolean = false): Boolean

判断内容是否与 another 相等即 thisanothercontentToString 相等. stricttrue 时, 还会额外判断每个消息元素的类型, 顺序和属性. 如 Image 会判断 Image.imageId

Link copied to clipboard
open override fun contentToString(): String

转为最接近官方格式的字符串. 如 At(member) + "test" 将转为 "@群名片 test".

Link copied to clipboard
open fun followedBy(tail: Message): MessageChain

thistail 连接.

Link copied to clipboard
open operator fun plus(another: Array<out Message>): MessageChain

another 按顺序连接到这个消息的尾部.

open operator fun plus(another: CharSequence): MessageChain

another 作为 PlainText 连接到这个消息的尾部.

open operator fun plus(another: String): MessageChain

another 作为 PlainText 连接到这个消息的尾部.

open operator fun plus(another: Iterable<String>): MessageChain

another 按顺序连接到这个消息的尾部.

open operator fun plus(another: Iterable<Message>): MessageChain

another 按顺序连接到这个消息的尾部.

open operator fun plus(another: Sequence<Message>): MessageChain

another 按顺序连接到这个消息的尾部.

open operator fun plus(another: Message): MessageChain

another 按顺序连接到这个消息的尾部.

open operator fun plus(another: MessageChain): MessageChain

another 按顺序连接到这个消息的尾部.

open operator fun plus(another: SingleMessage): MessageChain

another 连接到这个消息的尾部.

Link copied to clipboard
abstract override fun toString(): String

Properties

Link copied to clipboard
abstract val codec: AudioCodec

编码方式.

Link copied to clipboard
abstract val extraData: ByteArray?

文件的额外数据. 该数据由服务器提供, 可能会影响语音音质等属性. extraDatanull 时也可以发送语音, 但不确定发送和客户端收听是否会正常.

Link copied to clipboard
abstract val fileMd5: ByteArray

文件 MD5. 16 bytes.

Link copied to clipboard
abstract val filename: String

文件名称. 通常为 XXX.amr. 服务器要求文件名后缀必须为 ".amr", 但其编码方式也有可能是非 AudioCodec.AMR.

Link copied to clipboard
abstract val fileSize: Long

文件大小 bytes. 官方客户端支持最大文件大小约为 1MB, 过大的文件可能可以正常上传, 但在官方客户端无法收听 (显示文件损坏).