using System.Collections.Generic;
using LeanCloud.Storage;
namespace LeanCloud.Realtime {
///
/// 音频消息
///
public class LCIMAudioMessage : LCIMFileMessage {
///
/// 时长
///
public double Duration {
get; private set;
}
internal LCIMAudioMessage() {
}
public LCIMAudioMessage(LCFile file) : base(file) {
}
internal override Dictionary Encode() {
Dictionary data = base.Encode();
Dictionary fileData = data[MessageFileKey] as Dictionary;
Dictionary metaData = fileData[MessageDataMetaDataKey] as Dictionary;
if (File.MetaData != null &&
File.MetaData.TryGetValue(MessageDataMetaDurationKey, out object duration)) {
metaData[MessageDataMetaDurationKey] = duration;
}
return data;
}
internal override void Decode(Dictionary msgData) {
base.Decode(msgData);
if (File.MetaData == null) {
return;
}
if (File.MetaData.TryGetValue(MessageDataMetaDurationKey, out object duration) &&
double.TryParse(duration as string, out double d)) {
Duration = d;
}
}
public override int MessageType => AudioMessageType;
}
}