im::floo::floolib::BMXVideoAttachment

视频消息附件

Inherits from im.floo.floolib.BMXFileAttachment, im.floo.floolib.BMXMessageAttachment, BMXBaseObject

Public Functions

Name
synchronized void delete()
BMXVideoAttachment(String path, int duration, BMXMessageAttachment.Size size, String displayName)
构造函数,构建发送视频消息附件
BMXVideoAttachment(String path, int duration, BMXMessageAttachment.Size size)
BMXVideoAttachment(String path, String thumbnailPath, int duration, BMXMessageAttachment.Size size, String displayName)
构造函数,构建发送视频消息附件
BMXVideoAttachment(String path, String thumbnailPath, int duration, BMXMessageAttachment.Size size)
BMXVideoAttachment(String ratelUrl, int duration, BMXMessageAttachment.Size size, String displayName, long fileLength)
构造函数,构建接收视频消息附件
BMXVideoAttachment(String ratelUrl, String thumbnailUrl, int duration, BMXMessageAttachment.Size size, String displayName, long fileLength)
构造函数,构建接收视频消息附件
BMXMessageAttachment.Type type()
返回文件类型
BMXMessageAttachment clone()
克隆函数
BMXMessageAttachment.Size size()
视频大小,宽度和高度
int duration()
视频片段时长
void setThumbnail(String path)
设置发送视频片段消息缩略图
String thumbnailPath()
缩略图本地路径
String thumbnailUrl()
缩略图服务器路径
void setThumbnailRatelUrl(String thumbnailRatelUrl)
String thumbnailRatelUrl()
BMXMessageAttachment.DownloadStatus thumbnailDownloadStatus()
缩略图下载状态
BMXVideoAttachment dynamic_cast(BMXMessageAttachment attachment)

Protected Functions

Name
BMXVideoAttachment(long cPtr, boolean cMemoryOwn)
void finalize()
long getCPtr(BMXVideoAttachment obj)

Additional inherited members

Public Functions inherited from im.floo.floolib.BMXFileAttachment

Name
BMXFileAttachment(String path, String displayName)
构造函数,构建发送文件消息附件
BMXFileAttachment(String path)
BMXFileAttachment(String ratelUrl, String displayName, long fileLength)
构造函数,构建接收文件消息附件
String path()
本地路径
String displayName()
显示名
String ratelUrl()
String url()
远程URL
long fileLength()
文件长度
BMXMessageAttachment.DownloadStatus downloadStatus()
附件下载状态

Protected Functions inherited from im.floo.floolib.BMXFileAttachment

Name
BMXFileAttachment(long cPtr, boolean cMemoryOwn)

Protected Functions inherited from im.floo.floolib.BMXMessageAttachment

Name
BMXMessageAttachment(long cPtr, boolean cMemoryOwn)

Public Functions Documentation

function delete

inline synchronized void delete()

Reimplements: im::floo::floolib::BMXFileAttachment::delete

Example:

function BMXVideoAttachment

inline BMXVideoAttachment(
    String path,
    int duration,
    BMXMessageAttachment.Size size,
    String displayName
)

构造函数,构建发送视频消息附件

Parameters:

  • path 文件的本地路径
  • duration 视频片段时长
  • size 视频大小,宽度和高度
  • displayName 文件展示名

Example:

function BMXVideoAttachment

inline BMXVideoAttachment(
    String path,
    int duration,
    BMXMessageAttachment.Size size
)

Example:

function BMXVideoAttachment

inline BMXVideoAttachment(
    String path,
    String thumbnailPath,
    int duration,
    BMXMessageAttachment.Size size,
    String displayName
)

构造函数,构建发送视频消息附件

Parameters:

  • path 文件的本地路径
  • thumbnailPath 缩略图文件的本地路径
  • duration 视频片段时长
  • size 视频大小,宽度和高度
  • displayName 文件展示名

Example:

function BMXVideoAttachment

inline BMXVideoAttachment(
    String path,
    String thumbnailPath,
    int duration,
    BMXMessageAttachment.Size size
)

Example:

function BMXVideoAttachment

inline BMXVideoAttachment(
    String ratelUrl,
    int duration,
    BMXMessageAttachment.Size size,
    String displayName,
    long fileLength
)

构造函数,构建接收视频消息附件

Parameters:

  • ratelUrl ratel服务器地址
  • duration 视频片段时长
  • size 视频大小,宽度和高度
  • displayName 文件展示名
  • fileLength 文件大小

Example:

function BMXVideoAttachment

inline BMXVideoAttachment(
    String ratelUrl,
    String thumbnailUrl,
    int duration,
    BMXMessageAttachment.Size size,
    String displayName,
    long fileLength
)

构造函数,构建接收视频消息附件

Parameters:

  • ratelUrl ratel服务器地址
  • thumbnailUrl 缩略图文件服务器地址
  • duration 视频片段时长
  • size 视频大小,宽度和高度
  • displayName 文件展示名
  • fileLength 文件大小

Example:

function type

inline BMXMessageAttachment.Type type()

返回文件类型

Return: Type

Reimplements: im::floo::floolib::BMXFileAttachment::type

Example:

function clone

inline BMXMessageAttachment clone()

克隆函数

Return: BMXMessageAttachmentPtr

Reimplements: im::floo::floolib::BMXFileAttachment::clone

Example:

function size

inline BMXMessageAttachment.Size size()

视频大小,宽度和高度

Return: Size

Example:

    BMImageLoader.getInstance().display(mImageView, "");
    return;
}
final BMXVideoAttachment body = BMXVideoAttachment.dynamic_cast(mMaxMessage.attachment());
if (body == null) {
    BMImageLoader.getInstance().display(mImageView, "");
    return;
}
RelativeLayout.LayoutParams imgLayoutParams = null;
String imgWidth = null, imgHeight = null;
BMXVideoAttachment.Size size = body.size();
if (size != null) {
    imgWidth = String.valueOf(size.getMWidth());
    imgHeight = String.valueOf(size.getMHeight());
}
double maxLength = ScreenUtils.widthPixels * 0.5;
double minLength = ScreenUtils.widthPixels * 0.5 * 0.5;
if (!TextUtils.isEmpty(imgWidth) && !TextUtils.isEmpty(imgHeight)) {
    double limitDiff = maxLength / minLength;
    double diff = 0;

function duration

inline int duration()

视频片段时长

Return: int32_t

Example:

function setThumbnail

inline void setThumbnail(
    String path
)

设置发送视频片段消息缩略图

Parameters:

  • path 视频片段消息缩略图

Example:

function thumbnailPath

inline String thumbnailPath()

缩略图本地路径

Return: std::string

Example:

function thumbnailUrl

inline String thumbnailUrl()

缩略图服务器路径

Return: std::string

Example:

    }
} else {
    // 宽高比超过标准宽高比 按标准展示
    imgLayoutParams = new RelativeLayout.LayoutParams((int)maxLength, (int)(maxLength * 3 / 4));
}
mImageView.setLayoutParams(imgLayoutParams);
String picUrl = null;
if (!TextUtils.isEmpty(body.path()) && new File(body.path()).exists()) {
    picUrl = "file://" + body.path();
    BMImageLoader.getInstance().display(mImageView, picUrl, mImageConfig);
} else if (!TextUtils.isEmpty(body.thumbnailUrl())) {
    picUrl = body.thumbnailUrl();
    BMImageLoader.getInstance().display(mImageView, picUrl, mImageConfig);
    ChatManager.getInstance().downloadAttachment(mMaxMessage);
} else {
    BMImageLoader.getInstance().display(mImageView, "", mImageConfig);
    ChatManager.getInstance().downloadAttachment(mMaxMessage);
}
showVideoProgress();
} else {
    // 宽高比超过标准宽高比 按标准展示
    imgLayoutParams = new RelativeLayout.LayoutParams((int)maxLength, (int)(maxLength * 3 / 4));
}
mImageView.setLayoutParams(imgLayoutParams);
String picUrl = null;
if (!TextUtils.isEmpty(body.path()) && new File(body.path()).exists()) {
    picUrl = "file://" + body.path();
    BMImageLoader.getInstance().display(mImageView, picUrl, mImageConfig);
} else if (!TextUtils.isEmpty(body.thumbnailUrl())) {
    picUrl = body.thumbnailUrl();
    BMImageLoader.getInstance().display(mImageView, picUrl, mImageConfig);
    ChatManager.getInstance().downloadAttachment(mMaxMessage);
} else {
    BMImageLoader.getInstance().display(mImageView, "", mImageConfig);
    ChatManager.getInstance().downloadAttachment(mMaxMessage);
}
showVideoProgress();

function setThumbnailRatelUrl

inline void setThumbnailRatelUrl(
    String thumbnailRatelUrl
)

Example:

function thumbnailRatelUrl

inline String thumbnailRatelUrl()

Example:

function thumbnailDownloadStatus

inline BMXMessageAttachment.DownloadStatus thumbnailDownloadStatus()

缩略图下载状态

Return: DownloadStatus

Example:

function dynamic_cast

static inline BMXVideoAttachment dynamic_cast(
    BMXMessageAttachment attachment
)

Reimplements: im::floo::floolib::BMXFileAttachment::dynamic_cast

Protected Functions Documentation

Example:

private void showVideo() {
    registerListener();
    if (mMaxMessage == null || mMaxMessage.contentType() != BMXMessage.ContentType.Video) {
        BMImageLoader.getInstance().display(mImageView, "");
        return;
    }
    final BMXVideoAttachment body = BMXVideoAttachment.dynamic_cast(mMaxMessage.attachment());
    if (body == null) {
        BMImageLoader.getInstance().display(mImageView, "");
        return;
    }
    RelativeLayout.LayoutParams imgLayoutParams = null;
    String imgWidth = null, imgHeight = null;
    BMXVideoAttachment.Size size = body.size();
    if (size != null) {
        imgWidth = String.valueOf(size.getMWidth());
        imgHeight = String.valueOf(size.getMHeight());
    }
    double maxLength = ScreenUtils.widthPixels * 0.5;
    double minLength = ScreenUtils.widthPixels * 0.5 * 0.5;
private void registerListener() {
    if (mMaxMessage == null) {
        return;
    }
    boolean register = false;
    BMXVideoAttachment body = BMXVideoAttachment.dynamic_cast(mMaxMessage.attachment());
    boolean notExit = body != null
            && (TextUtils.isEmpty(body.path()) || !new File(body.path()).exists());
    long msgId = mMaxMessage.msgId();
    if (mItemPos == ITEM_RIGHT) {
        BMXMessage.DeliveryStatus sendStatus = mMaxMessage.deliveryStatus();
        register = sendStatus != null && sendStatus != BMXMessage.DeliveryStatus.Deliveried
                && sendStatus != BMXMessage.DeliveryStatus.Failed || notExit;
    } else if (mItemPos == ITEM_LEFT) {
        register = notExit;
    }
    if (register) {
        if (mProgressCache.get(msgId, -1) == -1) {
            mProgressCache.put(msgId, 0);
private void openVideoItemClick(BMXMessage bean) {
    if (mView == null || bean == null || bean.contentType() != BMXMessage.ContentType.Video) {
        return;
    }
    BMXVideoAttachment body = BMXVideoAttachment.dynamic_cast(bean.attachment());
    if (body == null) {
        return;
    }
    String videoUrl = null;
    if (!TextUtils.isEmpty(body.path()) && new File(body.path()).exists()) {
        videoUrl = body.path();
    }
    if (TextUtils.isEmpty(videoUrl)) {
        // 正在下载
        ToastUtil.showTextViewPrompt(mView.getContext().getString(R.string.downloading));
        return;
    }
    BMXMessageAttachment.DownloadStatus status = body.downloadStatus();
    if (status == BMXMessageAttachment.DownloadStatus.Downloaing) {
        ToastUtil.showTextViewPrompt(mView.getContext().getString(R.string.downloading));

function BMXVideoAttachment

inline BMXVideoAttachment(
    long cPtr,
    boolean cMemoryOwn
)

Example:

function finalize

inline void finalize()

Reimplements: im::floo::floolib::BMXFileAttachment::finalize

Example:

function getCPtr

static inline long getCPtr(
    BMXVideoAttachment obj
)

Example:


Updated on 2022-01-26 at 17:18:31 +0800

© 2019-2023 美信拓扑 | 官网 该文件修订时间: 2023-08-09 14:48:15

results matching ""

    No results matching ""