当前快报:【干货】CoreTime框架中的时间类型
CMTime CMTimeRange CMTimeMapping
(相关资料图)
在使用 AVFoundation 框架处理多媒体资源时,通常会用到一些在 CoreMedia 框架中定义的结构体, 这里对其中描述时间的类型 CMTime 、CMTimeRange 、CMTimeMapping 进行简单的小结。
CMTime
概述
CMTime 是一个结构体,其用来表示一个有理数,描述一个时刻或时段。在结构体中有4个成员,如下:
typedef struct{ CMTimeValue value; CMTimeScale timescale; CMTimeFlags flags; CMTimeEpoch epoch;} CMTime;
该结构体类型的变量表示的时刻或时段的值为 value/timescale ,单位是秒。
timescale 这个分母值的含义是将 1 秒钟分成了多少个单元value 这个分子值的含义是所表示的时刻或时段共计占用了多少个单元
那么 1/timescale 表示一个单元占用了多长时间,这个时间小于 1 秒,而 value * (1/timescale) 即表示整个结构体变量所表示的时间长度。
flags 该标识可以表示当前变量表示的时刻或时段是否有效、是否是准确值等,可取的值如下:
kCMTimeFlags_Valid = 1UL<<0该值必需设置,否则当前变量会被认为是无效的kCMTimeFlags_HasBeenRounded = 1UL<<1表示当前变量是约数并不是原始的精确值,或者是由其他非精确的值生成的kCMTimeFlags_PositiveInfinity = 1UL<<2表示当前变量为正无穷kCMTimeFlags_NegativeInfinity = 1UL<<3表示当前变量为负无穷kCMTimeFlags_Indefinite = 1UL<<4表示当前变量未定义kCMTimeFlags_ImpliedValueFlagsMask = kCMTimeFlags_PositiveInfinity | kCMTimeFlags_NegativeInfinity | kCMTimeFlags_Indefinite表示正负无穷或未定义
epoch 可以用来区分两个表示相同时间的变量,如循环递增的时间,这个值可以区分不同循环内的相同的时间的变量。
常量
在 CoreMedia 框架中,提供了一些常量,用来表示特殊的 CMTime 值。
kCMTimeInvalid 用来初始化无效的 CMTime 值,该变量的每个成员的值都是 0kCMTimeZero 用来表示时间为 0 ,该变量的成员值为 value=0,timescale=1,flags=kCMTimeFlags_Valid,epoch=0kCMTimePositiveInfinity 表示时间为正无穷,flags=5(即 kCMTimeFlags_Valid|kCMTimeFlags_PositiveInfinity),其他成员的值都是 0kCMTimeNegativeInfinity 表示时间为负无穷,flags=9(即 kCMTimeFlags_Valid|kCMTimeFlags_NegativeInfinity),其他成员的值都是 0kCMTimeIndefinite 表示时间未定义,flags=17(即 kCMTimeFlags_Valid|kCMTimeFlags_Indefinite),其他成员的值都是 0
要判断已知的变量是否等于上述的变量时,不可以使用 “==” 进行判断,而是要使用框架中提供的宏,在这些宏定义中,都是对变量的成员 flags 值进行了判断。
CMTIME_IS_VALID(time)判断已知的 CMTime 变量是否是有效的CMTIME_IS_INVALID(time)判断已知的 CMTime 变量是否是无效的CMTIME_IS_POSITIVE_INFINITY(time)判断已知的 CMTime 变量是否表示时间正无穷CMTIME_IS_NEGATIVE_INFINITY(time)判断已知的 CMTime 变量是否表示时间负无穷CMTIME_IS_INDEFINITE(time)判断已知的 CMTime 变量是否是未定义的CMTIME_IS_NUMERIC(time)判断已知的 CMTime 变量是否是明确的时间,而不是正负无穷或未定义CMTIME_HAS_BEEN_ROUNDED(time)判断已知的 CMTime 变量是否是约数
函数
CMTime CMTimeMake(int64_t value,int32_t timescale);
CMTime CMTimeMakeWithEpoch(int64_t value,int32_t timescale,int64_t epoch);
上面两个是生成 CMTime 变量的常见函数,通过指定相应的成员变量的值来生成相应的变量。
CMTime CMTimeMakeWithSeconds(Float64 seconds,int32_t preferredTimescale)
除了指定相应的成员变量来生成 CMTime 变量外,还可以通过指定时间和时间粒度来生成变量。返回的变量,其成员 epoch 被设置为 0 ,而 value 的值则是 seconds 与 preferredTimescale 的乘积,所以 value 的值可能会溢出。
当发生溢出时,会将 preferredTimescale 的值自动减半,直到 value 的值不再溢出,或者 preferredTimescale 减到 1 ,如果减到 1 后,value 仍然溢出,则这个变量表示无穷大。
由于提供的时间是浮点型,而计算得到的成员变量 value 是整型值,所以计算时,value 的值可能含有小数,如果有小数部分,便需要舍入。如此,使用成员变量再次计算得到的时间值与原来提供的时间值不相等,所以对于这种情况,返回值的成员变量 flags 中,kCMTimeFlags_HasBeenRounded 标识会被设置。
Float64 CMTimeGetSeconds(CMTime time);使用该方法将 CMTime 类型的变量转化为时间值,如果变量本身表示的值无效或是正负无穷值,则返回 NaN 或 +Inf 、-Inf 。
CMTime CMTimeConvertScale(CMTime time,int32_t newTimescale,CMTimeRoundingMethod method);
该方法可以修改已知的 CMTime 类型变量的 timescale 成员变量的值,计算 value 的值时可能需要舍入小数部分,所以调用函数时要指定舍入方法。
CMTimeRoundingMethod 有以下可取值:
kCMTimeRoundingMethod_RoundHalfAwayFromZero = 1, 表示四舍五入kCMTimeRoundingMethod_RoundTowardZero = 2, 始终舍弃小数部分kCMTimeRoundingMethod_RoundAwayFromZero = 3, 始终进1kCMTimeRoundingMethod_QuickTime = 4, 当时间粒度值变大,则应进1,反之,时间粒度值变小,舍弃小数部分,而当表示的时间是负的时,舍弃小数后,value 若为 0 ,应将其置为 -1kCMTimeRoundingMethod_Default = kCMTimeRoundingMethod_RoundHalfAwayFromZero
//转换后 time2 的 value 为 1CMTime time1 = CMTimeMake(1, 4);CMTime tiem2 = CMTimeConvertScale(time, 2, kCMTimeRoundingMethod_RoundHalfAwayFromZero);//转换后 time2 的 value 为 0 CMTime time1 = CMTimeMake(1, 5); CMTime tiem2 = CMTimeConvertScale(time, 2, kCMTimeRoundingMethod_RoundHalfAwayFromZero); //转换后 time2 的 value 为 0 CMTime time1 = CMTimeMake(1, 5); CMTime tiem2 = CMTimeConvertScale(time, 2, kCMTimeRoundingMethod_QuickTime); //转换后 time2 的 value 为 -1 CMTime time1 = CMTimeMake(-1, 5); CMTime tiem2 = CMTimeConvertScale(time, 2, kCMTimeRoundingMethod_QuickTime);
CMTime CMTimeAdd( CMTime addend1,CMTime addend2);
CMTime CMTimeSubtract(CMTime minuend,CMTime subtrahend);
两个 CMTime 类型的变量之和或之差,得到的结果的 timescale 的值是两个变量的 timescale 的最小公倍数。如果这个公倍数大于 kCMTimeMaxTimescale 这个值,那么 timescale 就使用 kCMTimeMaxTimescale 这个值。在转换这个 timescale 的过程中,计算 value 的值时采用默认的舍入方法,如果 value 的值溢出,便减半 timescale 再进行计算,判断其是否溢出,若溢出,再次减半,直到其值为 1 ,如果仍然溢出,则返回的结果为无穷大。
CMTime CMTimeMultiply(CMTime time,int32_t multiplier);
CMTime CMTimeMultiplyByFloat64(CMTime time,Float64 multiplier);
扩大已知的 time 的倍数,value 的值扩大 multiplier 倍,如果溢出,持续减半 timescale 的值,直到不再溢出或为 1 ,如果为 1 时仍然溢出,返回的值表示无穷大。
CMTime CMTimeMultiplyByRatio(CMTime time,int32_t multiplier,int32_t divisor)
用已知的 time 的 value 值乘以 multiplier 再除以 divisor 得到新的 value 值,如果 value 的值发生溢出,那么 timescale 便会发生转变。
int32_t CMTimeCompare(CMTime time1,CMTime time2)
两个时间比较,遵循的规则:负无穷 < 具体时间 < 未定义 < 正无穷 < 无效时间
具体的两个时间比较大小时,其成员 epoch 也参与比较,epoch 较大的时间较大。
time1 > time2 ,返回值为 1time1 < time2 ,返回值为 -1time1 = time2 ,返回值为 0
框架中提供了一个宏 CMTIME_COMPARE_INLINE(time1, comparator, time2) ,通过提供比较运算符(>、>=、=、<、=<)comparator 来获取 time1 与 time2 的大小关系。
CMTime CMTimeMinimum(CMTime time1,CMTime time2)返回 time1 与 time2 中较小的值
CMTime CMTimeMaximum(CMTime time1,CMTime time2)返回 time1 与 time2 中较大的值
CMTime CMTimeAbsoluteValue(CMTime time)
返回 time 的绝对值
CFDictionaryRef CM_NULLABLE CMTimeCopyAsDictionary(CMTime time,CFAllocatorRef CM_NULLABLE allocator)
CMTime CMTimeMakeFromDictionary(CFDictionaryRef CM_NULLABLE dict)
上面两个方法,可以将 CMTime 类型的变量转化为 CFDictionaryRef 类型的变量,或者从已经转化的变量中生成一个 CMTime 类型的变量。在 CFDictionary 中,它应包含键值:kCMTimeValueKey 、kCMTimeScaleKey 、kCMTimeEpochKey 、kCMTimeFlagsKey 分别对应 CMTime 的各个成员变量。
CFStringRef CM_NULLABLE CMTimeCopyDescription(CFAllocatorRef CM_NULLABLE allocator,CMTime time)
void CMTimeShow(CMTime time)
上面的两个方法,可以获取 CMTime 类型变量的字符串描述,或者直接将字符串描述打印出来。
CMTimeRange
概述
CMTimeRange 是用来表示一个时间范围的结构体变量,它的两个成员变量都是 CMTime 类型的变量,分别表示时间范围的开始时刻和时间范围的持续时长,所以开始时刻与持续时长的和得到的时刻并不属于该类型表示的时间范围。
typedef struct{ CMTime start; CMTime duration;} CMTimeRange;
可以使用 kCMTimeRangeZero 、kCMTimeRangeInvalid 分别表示时间范围为 0 和无效的的 CMTimeRange 类型变量。
对于有效的 CMTimeRange 类型变量,它的两个 CMTime 成员变量都必须是有效的,并且 duration.epoch 必须是 0 ,duration.value 的值必须是非负的。可以直接使用框架中提供的宏定义,进行判断。
CMTIMERANGE_IS_VALID(range) 当 start 、duration 是有效的,且 duration.epoch == 0 且 duration.value >= 0 时,返回 trueCMTIMERANGE_IS_INVALID(range) 返回的真假值与上面的宏返回的值相反CMTIMERANGE_IS_INDEFINITE(range) 当 range 为有效值,且 range.start 和 range.duration 中至少有一个为未定义时,这个宏返回 trueCMTIMERANGE_IS_EMPTY(range) 当 range 为有效值,且 range.duration 为 kCMTimeZero 时,这个宏返回 true
函数
CMTimeRange CMTimeRangeMake(CMTime start,CMTime duration)创建一个表示时间范围的变量
CMTimeRange CMTimeRangeGetUnion(CMTimeRange range1,CMTimeRange range2)
返回两个时间范围的最小并集
CMTimeRange CMTimeRangeGetIntersection(CMTimeRange range1,CMTimeRange range2)
返回两个时间范围的最大交集
Boolean CMTimeRangeEqual(CMTimeRange range1,CMTimeRange range2)
返回两个时间范围是否相等
Boolean CMTimeRangeContainsTime(CMTimeRange range,CMTime time)
返回指定的时间范围内是否包含指定的时间
Boolean CMTimeRangeContainsTimeRange(CMTimeRange range1,CMTimeRange range2)
返回指定的时间范围 range1 是否包含 指定的时间范围 range2
CMTime CMTimeRangeGetEnd(CMTimeRange range)
返回指定时间范围的结束时间,这个时间是不包含在时间范围内的,即
CMTimeRangeContainsTime(range, CMTimeRangeGetEnd(range))的返回值总是 false 。
CMTime CMTimeMapTimeFromRangeToRange(CMTime t,CMTimeRange fromRange,CMTimeRange toRange )
将指定的时间 t 根据时间范围 fromRange 和 toRange 进行转换,如果 t 是 fromRange 的开始或者结束时间,那么转换后,其就是 toRange 的开始或结束时间。如果 t 是其他时间,那么按照公式 result = (t-fromRange.start)*(toRange.duration/fromRange.duration)+toRange.start进行计算。
CMTime CMTimeClampToRange(CMTime time,CMTimeRange range)
返回的是指定的时间范围内 range 中距离指定时间 time 最近的时间。如果 time 的时间小于 range 的开始时间,那么返回的就是 range 的开始时间,如果 time 在 range 范围内,那么返回其本身,如果 time 是 range 的结束时间或结束时间之后,那么返回的都是 range 的结束时间(即使该结束时间不属于 range 表示的时间范围之内)。
CMTime CMTimeMapDurationFromRangeToRange(CMTime dur,CMTimeRange fromRange,CMTimeRange toRange )
将指定的时间范围的持续时长根据时间范围 fromRange 和 toRange 进行转换,实际是对持续时长进行了缩小或放大,其计算公式为 result = dur*(toRange.duration/fromRange.duration)
CMTimeRange CMTimeRangeFromTimeToTime(CMTime start,CMTime end)根据指定的开始时间和结束时间构建一个表示时间范围的变量。
CFDictionaryRef CM_NULLABLE CMTimeRangeCopyAsDictionary(CMTimeRange range,CFAllocatorRef CM_NULLABLE allocator)
CMTimeRange CMTimeRangeMakeFromDictionary(CFDictionaryRef CM_NONNULL dict)
上面的方法实现了 CMTimeRange 类型变量与 CFDictionaryRef 变量的相互转换,CFDictionary 中的键 kCMTimeRangeStartKey 、kCMTimeRangeDurationKey 分别对应着 CMTimeRange 中的成员。
CFStringRef CM_NULLABLE CMTimeRangeCopyDescription(CFAllocatorRef CM_NULLABLE allocator,CMTimeRange range)
void CMTimeRangeShow(CMTimeRange range)
上面的两个方法,可以获取 CMTimeRange 类型变量的字符串描述,或者直接将字符串描述打印出来。
CMTimeMapping
概述
CMTimeMapping 是一个描述媒体资源时间线映射关系的结构体变量,其包含两个 CMTimeRange 类型的成员变量。
typedef struct { CMTimeRange source; CMTimeRange target;} CMTimeMapping;
source 表示的是源资源的时间线范围,包括开始的时刻和持续的时长,如果开始时间为 kCMTimeInvalid ,表示没有资源的编辑信息,即该变量为空。target 表示的是资源目标的时间线,包含开始时间和持续时长,如果 source 和 target 的 duration 不同,那么资源在播放时,速度为 source.duration/target.duration 以保证资源播放完整。
在框架中,使用 kCMTimeMappingInvalid 来表示无效的 CMTimeMapping 类型变量,可以使用 CMTIMEMAPPING_IS_VALID(mapping)、CMTIMEMAPPING_IS_INVALID(mapping)来判断变量 mapping 是否有效(mapping.target 有效即可),或者使用 CMTIMEMAPPING_IS_EMPTY(mapping)来判断 mapping 是否为空(mapping 有效且 mapping.source.start 为 kCMTimeInvalid)
函数
CMTimeMapping CMTimeMappingMake(CMTimeRange source,CMTimeRange target)
创建一个映射关系变量,提供的 source 和 target 的 epoch 的值必需为 0 ,否则将返回一个无效值。
CMTimeMapping CMTimeMappingMakeEmpty(CMTimeRange target)
创建一个空的变量,提供的 target 的 epoch 必需时 0 ,否则将返回一个无效值。
CFDictionaryRef CM_NULLABLE CMTimeMappingCopyAsDictionary(CMTimeMapping mapping,CFAllocatorRef CM_NULLABLE allocator)
CMTimeMapping CMTimeMappingMakeFromDictionary(CFDictionaryRef CM_NONNULL dict)
上面的方法实现了 CMTimeMapping 类型变量与 CFDictionaryRef 变量的相互转换,CFDictionary 中的键 kCMTimeMappingSourceKey 、kCMTimeMappingTargetKey 分别对应着 CMTimeMapping 中的成员。
CFStringRef CM_NULLABLE CMTimeMappingCopyDescription(CFAllocatorRef CM_NULLABLE allocator,CMTimeMapping mapping)
void CMTimeMappingShow(CMTimeMapping mapping)
上面的两个方法,可以获取 CMTimeMapping 类型变量的字符串描述,或者直接将字符串描述打印出来。
转载于:https://www.cnblogs.com/linganxiong/p/9104513.html
标签:
相关推荐:
精彩放送:
- []天天微资讯!喷墨打印机怎么安装?喷墨打印机安装驱动程序
- []全球看点:喜出望外的近义词和反义词 喜出望外出自哪里?
- []【环球播资讯】visio序列号有哪些?visio序列号大全
- []【世界新要闻】魔术头巾怎么系?魔术头巾的系法图解
- []当前快报:【干货】CoreTime框架中的时间类型
- []观天下!钢绞线有粘结和无粘结的区别是什么?
- []虚无世界2怎么去其他世界?虚无世界2去其他世界的方法
- []每日精选:Linux下chmod 777 修改权限怎么设置?设置方法
- []天天要闻:华硕官方发布超薄上网本 价格不高于200美元
- []消息!花样直播是什么?花样直播的详细介绍
- []今日地接宝(地接)
- []全球即时看!什么是机械工程及其自动化?详情介绍
- []天天精选!html代码怎么在空间应用?HTML制帖空间的代码
- []每日消息!手柄模拟键盘怎么设置?手柄模拟键盘设置方法
- []世界微速讯:华为MateBook14怎么样?华为MateBook14值不值得买?
- []数码印刷机在工作中的作用 数码印刷机详细介绍
- []网络小黑揭秘系列之黑产江湖黑吃黑—厨房切菜之利器
- []世界观天下!“3.6亿”事件引发国人持续热议 事情的背后究竟有何隐情?
- []环球滚动:EMS有多快吗?每小时的移动速度为16KM
- []每日快看:
微软msvcrtd.dll文件修复教程(附下载) - []天天滚动:非负数正则怎么表示?非负数正则表达式
- []安道麦重返证券市场 成为国内唯一一家跨国作物保护公司
- []【天天播资讯】怎么委婉催人还钱?高情商的催还钱方法
- []观察:正泰断路器有哪些型号?正泰断路器型号以及其功能
- []要闻:车载导航品牌哪个好?汽车导航品牌推荐
- []【时快讯】2021考研英语黄皮书英一英二全套加解析
- []全球视点!网页制作入门级软件推荐——FrontPage
- []环球今日报丨百度联盟SSP媒体广告异步加载代码解决方案
- []焦点快报!免费人格测试软件--16personalities
- []无法连接到iTunes Store怎么办?无法连接到iTunes Store的解决方法
- []《帝王妻》:最神秘的皇家女人 纤纤玉手搅动大内风云
- []全球热门:电动遮阳帘有什么品牌?电动遮阳帘品牌推荐
- []天天微动态丨qq炫舞测试服务器怎么维护?QQ炫舞体验服新界面安装操作方法
- []当前热议!如何使用手机可视电话?可视电话使用方法
- []每日热点:扇形计算公式是怎么得来的?扇形计算公式介绍
- []宽带账号密码忘记了怎么设置路由器?怎么找回宽带密码?
- []焦点热议:热管换热器工作原理是什么?热管换热器工作原理及特点介绍
- []【当前独家】成都舞厅最新消息 成都舞厅具体位置
- []什么路由器穿墙效果好?无线路由的防坑指南
- []【热闻】yy电影频道是多少?如何使用yy看在线电影?
- []世界快报:为何湖人不留下霍华德 却几乎不上场的杜德利?
- []实木床品牌排行榜前十名2021:华鹤排第一
- []win10系统如何设置动态桌面?电脑炫酷动态壁纸
- []域名服务器是什么?域名服务器详情介绍
- []当前简讯:期刊论文发表有哪些方法?期刊论文发表方法
- []焦点简讯:VirtualCloneDrive:如何一次装载多个ISO?
- []焦点播报:不干胶打印机哪种好?不干胶打印机推荐
- []Word如何绘制斜线表头?方法步骤如下
- []世界动态:youtube官网怎么下载视频?下载YouTube网站视频的方法
- []多宝鱼鳞怎么处理干净?多宝鱼处理方法
- []焦点热议:镭风显卡怎么样?镭风显卡参数介绍
- []资讯推荐:世界十大高楼排名:广州塔600米 中国大厦高468米
- []环球关注:政府信息化与电子政务 政府信息化定义包含的三个方面
- []天天要闻:计算机指纹识别的原理是什么?指纹识别原理和过程
- []焦点热门:单变量积分的知识可参考 二重积分的意义
- []MIUI是什么?MIUI的主要特色
- []环球快播:CSDN社区简介: 全球最大的IT技术社区 日访问用户数达100万
- []开源网站有哪些?网站建设了解多少?
- []电力线接入是什么?电力线接入技术原理分析介绍
- []每日热议!苹果手机怎么检查是不是正品?检查苹果正品方法
- []联想启天m2000电脑怎么样?联想启天m2000性能评测
- []金山打字通五笔怎么使用?金山打字通五笔介绍及讲解
- []济源市谷歌高清卫星地图离线包如何下载?下载步骤
- []环球通讯!宝塔面板教程 基于云服务器搭建学生机最全详解
- []简讯:高度竞争的酒店婚宴市场路在何方?
- []【快播报】大疫三年,那些坚持下来的旅游人
- []携程:海外目的地搜索大涨10倍
- []利好:香港民航爆发
- []透视“阳康”旅游热:疫情伤疤之下的微光
- []美团住宿何潇:不止住宿
- []【世界播资讯】全球首架C919模拟航班来了,验证飞行将持续到明年2月
- []世界短讯!套系家电存“虚火”,三大痛点待重视
- []即时焦点:民丰特纸:我司非物流运输和医药企业。我们相信在党和政府的领导下,一定能够赢得抗击疫情的胜利!
- []世界微动态丨克明食品:公司采用的以销定产的模式,不存在卖不出的产品
- []环球热头条丨中国铁建拟发行合计20亿元公司债
- []观热点:中诚信托转让华发睿治地产40%股份 武汉华发置业接盘
- []焦点报道:曲江文旅拟与文商集团、无既科技设曲江数科公司 注册资本500万元
- []天天热文:东莞全市取消限购!新一轮需求端政策纾困已经开始
- []最新资讯:川宁生物隆重举行上市敲钟仪式
- []环球速看:上海迪士尼明年将迎来第四轮涨价
- []储能电芯毛利润20%
- []华侨城拟下调“18侨城04”后两年的票面利率
- []环球今热点:纵横通信:公司与凤凰金融无合作关系
- []天天资讯:北京办公楼市场深度调整这一年
- []世界简讯:大悦城15亿元公司债在深交所上市 票面利率为4.27%
- []天天短讯!万亿GDP城市出手,全面取消限购!多个热点城市购房政策大幅松绑
- []当前速看:大象转身:科技照进梦想,房企奔流向前
- []世界头条:铜陵有色:公司没有独立的镍矿资源,公司的镍产品是冶炼的副产品之一,作为资源综合回收利用
- []全球资讯:下沉市场角逐升级:酒旅业的下一个关键点在哪?
- []新成昆铁路全线通车,时隔52年再次穿越“地质博物馆”
- []环球微头条丨自今日起,东莞暂停实行限购政策
- []人寿保险退保大概扣多少费 人寿退保可以退多少
- []无登记的参保信息怎么解决 社保卡显示无登记的参保信息怎么办
- []世界最资讯丨大悦城控股下属公司拟1.35亿元收购中金澍茂49%股权
- []天天快看点丨平安金管家如何退保险 如何在平安金管家退保
- []1分5的利息怎么算 一分五的利息算法公式是什么
- []企业年金缴费比例 企业年金的缴纳比例
- []全球即时:广州认定首批3758套保障性租赁住房,房源分布荔湾、黄埔
- []世界速看:绿地控股大股东格林兰减持1.05%股份
- []中信博股东王程减持4.87万股 套现409.86万 2022年前三季度公司亏损1255.32万
- 全球新动态:声迅股份:12月23日公司高管刘建文减持公司股份合计10万股
- 世界报道:放大招了!郑州已筹集保交楼资金130亿元 部分区域执行最低20%首付
- 创意信息:12月23日公司高管黎静减持公司股份合计4.79万股
- 莱茵体育:莱茵达集团及高靖娜已分别减持1377万股、91万股
- 环球快看:胜蓝股份:12月23日公司高管伍建华减持公司股份合计3.22万股
- 世界报道:乐心医疗:12月23日公司高管潘伟潮减持公司股份合计259万股
- 当前短讯!利通电子:12月23日公司高管邵秋萍减持公司股份合计137.43万股
- 当前看点!龙软科技:12月23日公司高管郭兵、侯立减持公司股份合计2.74万股
- 每日速讯:*ST吉药涉信披违法违规被处罚 不涉及财务报表变更
- 全球观速讯丨阳光城为沈阳光煜恒荣1.7亿元展期融资提供担保
- 世界今日讯!云涌科技:12月19日至12月20日刘杨、李占才减持公司股份合计6400股
- 环球快资讯丨“新十条”半月考,景区“渡阳”
- 世界报道:开锐管理咨询劳莘:国内外空铁联运的最佳实践和思考
- 当前报道:2022 DTA 数字旅游奖获奖名单公布,金奖竟然是它!
- 焦点速递!大悦城控股全资子公司天泉置业拟1.35亿收购中金澍茂49%股权
- 动态:成都青羊区、新都区底价拍出5宗商地 总成交价约3.19亿
- 光明地产为下属4家企业提供对外担保合计1.86亿元
- 当前时讯:中信博:12月26日公司高管王程减持公司股份合计4.87万股
- 天天热头条丨又一珠三角重镇放松住房限购,业内预计更多热点城市将跟进
- 当前头条:广州荔湾、黄埔7个项目3758套住房成为全市首批认定保租房
- 每日消息!晶澳科技蝉联PV ModuleTech可融资性AAA评级
- 当前要闻:春运火车票开售:铁路最大运力高于2019年,大部分线路余票充足
- 宝龙“21宝龙01”债券持有人会议召开 2024年兑付85%本金及利息
- 锦江酒店暂时取消2022年第二次临时股东大会
- 天天微速讯:神农集团:神农集团无“海南神农水产种源科技有限公司”的全资子公司
- 苏州高新更正3亿元中期票据募集资金使用情况
- 全球球精选!恒信东方:北京疫情对公司经营没有产生重大不利影响,目前公司处于正常经营状态
- 平度市城市开发集团15亿元私募债状态更新为“已反馈”
- 中华企业:子公司中星集团与上海虹甬签署产权交易合同 总价5.2亿
- 每日精选:西部矿业:受疫情影响,2022年调研活动均以线上方式为主
- 最资讯丨聚焦能源科技创新,探索绿色转型攻守之道
- 打入数藏自媒体圈 暗访揭秘乱象
- 财面儿|北辰实业减持北京辰轩置业16%股份 不再是该企业大股东
- 视讯!雅创电子:根据中国结算下发的股东数据,截至2022年12月20日,公司的股东人数为8469
- 大名城:非公开发行A股股票议案获股东大会审议通过
- 每日速读!家居丨金牌厨柜:1001.75万股限售股将于2023年1月3日上市流通
- 世界头条:祥明智能:公司产品暂无军工领域的应用
- 财面儿丨绿地控股:股东格林兰累计减持公司1.05%股份
- 环球微资讯!长荣股份:公司目前已不再持有长鑫基金份额
- 焦点资讯:财面儿丨建发股份:拟发行50亿元公司债券以及150亿元可续期公司债券
- 当前简讯:天地数码:公司是热转印碳带产品领域的国内龙头企业
- 当前速讯:同程旅行白志伟:直面旅行市场的结构性变革
- 环球最资讯丨140亿元!宁德时代项目在济宁正式启动
- 内蒙古:三批大基地项目共43.78GW!
- 正极材料厂商智锂科技冲刺新三板
- 世界看点:珠城科技:目前,公司的产品主要应用于消费类家电、智能终端等,同时以汽车领域作为公司未来的重要发展方向
- 每日速读!建发股份:拟发行50亿元公司债券
- 当前通讯!南京5批次集中供地收金49.03亿元
- 世界热议:润华生活服务集团通过港交所聆讯
- 世界微动态丨央行上海总部:11月长三角地区住户部门贷款增加1381亿元
- 老百姓:我们会向管理层进行反馈
- 环球观天下!远东传动:截止到2022年12月20日公司股东人数为46860
- 焦点报道:达安基因:公司全资子公司中山生物工程有限公司现阶段正在执行保供任务
- 世界快播:五棵松万达广场预计2023年6月开业
- 欧盟《新电池法》达成协议,中企应何去何从?
- 热门:长安期货原油早评:多空博弈筑底反弹,俄罗斯减产之际油价或存布多机会
- 【天天播资讯】2023年贵金属走势前瞻:金价或突破2000美元,银价升至50美元!
- 世界速看:回顾2022:霍尼韦尔携手中国合作伙伴共创可持续的未来
- 【全球报资讯】总投资约80亿元!两大储能产业项目签约落地广东东莞
- 天天资讯:“软着陆”不无可能?白宫首席经济学家力挺:美经济衰退可以避免
- 最新消息:所有经济学家预计经济衰退将在2023到来,美联储是导火索
- 一张图:交易品种枢纽点+多空占比一览(2022/12/26周一)
- 全球消息!江苏致豪房地产联合体9.31亿元竞得南通1宗住宅用地
- 每日动态!12月26日英飞拓涨停分析:机器视觉,5G,智能制造概念热股
- 官宣!广东东莞全域放开住房限购
- 世界快讯:12月26日京蓝科技涨停分析:园林,边缘计算,环保概念热股
- 天天关注:翔丰华:公司的主要客户为国内外锂离子电池制造厂商
- 世界速看:东莞全市取消限购!
- 12月26日海南椰岛涨停分析:海南,海南自由贸易港,跨境电商概念热股
- 全球快看点丨A股制造业企业数达3313家 行业龙头不断涌现
- 天天快报!广东顺控城投近24亿元竞得佛山顺德北滘商住地
- 全球新消息丨吴兴产业投资4.52亿元竞得湖州吴兴区1宗商住地
- 世界最资讯丨奥冠集团:2023年拟完成170Wh/kg第三代钠电池开发
- 今日快看!酒店设计,如何以文化根源实现商业野心
- 深度解析:全国19家国家旅游科技示范园区模式与特点
- 每日快讯!方大109亿元驰援海航
- 新航半年创下五大纪录
- 世界微动态丨3.06GWh储能开标!储能系统报价再上涨!新增2.51GWh招标!
- 观焦点:北京环球影城订票量猛增177%,“阳康们涌向三亚”刷屏
- 协鑫能科子公司收购津巴布韦锂矿资源 打造储能产业链闭环
- 全球微速讯:动力电池企业仍需练好内功不断进阶
- 热门看点:我国首个!超大容量变速“城市充电宝”开建
- 当前通讯!鼓励购买绿证完成消纳量!《福建省2022年度可再生能源电力消纳保障实施方案》印发
- 丽呈开放平台:中小酒店品牌开启反周期生长
- 当前短讯!宁德时代“灯塔工厂”项目加紧有序推进
- 天天快消息!“阳康”后,我终于好好旅游了一次
- 即时看!极致驾控 风驰电掣 划时代纯电超跑SUV路特斯Eletre点燃赛道激情
- 全球快消息!2022年中国储能锂电池产业链规模破2000亿
- 什么是软文? 软文推广平台有哪些?
- 天天实时:中辉期货能源早盘关注:空头注意防范风险
- 世界速讯:麦德龙出售印度子公司 信实集团3.43亿美元接盘
- 全球快资讯丨福晶科技:感谢您对公司关注!公司欢迎广大投资者调研交流,机构调研情况可以查阅深交所互动易相关信息
- 常润股份:公司不存在应披露未披露的信息。公司生产经营情况总体正常
- 全球信息:安宁股份:截止12月20日股东人数22,054
- 胜华新材:公司东营厂区30万吨/年电解液装置12月底竣工,计划2023年2月上旬投产
- 北京五棵松万达广场将于2023年6月开业 为海淀区首个万达广场
- 今日快讯:西安港务区9.11亿元挂牌2宗住宅地 总面积为11.41万平米
- 世界微资讯!台州18.28亿元挂牌一宗商住地 出让面积超11万平米
- 硅片价格雪崩,光伏产业链降价只是刚刚开始?
- 福州砂之船奥莱小镇12月24日开业 月内连开两个项目