# 开发 \| 新能力全解读！我们把小程序最新 API 玩了一遍，发现……

- 作者：知晓程序
- 发布时间：2017-10-30 12:00
- 原文：https://www.ifanr.com/minapp/924346

![](https://s3.ifanr.com/wp-content/uploads/2017/07/minapp-dev-final-feature.jpg)

文 \| 花叔

距离上次更新已经有一个月了，**小程序[终于又有新能力](http://www.ifanr.com/minapp/923157)了，但更新的内容并不太多**。这有点违背微信团队的快速迭代的习惯，难道在酝酿更大的迭代？嘿嘿。

回归正题，先来看看这次更新了啥，花叔这边简单整理了一下：

![](https://s3.ifanr.com/wp-content/uploads/2017/10/mmexport1508204519804.png)

### 1. 录音 API 的加强

首先，花叔觉得**最大变化，应该录音 API 的更新**。

除了支持了 AAC/MP3 格式、支持自定义录音时长、自定义码率等特性外，**最酷炫的新特性应该是边录边传**，主要是依靠 `getRecorderManager` 方法来实现。

以往录音是录一段传一段，现在是即录即传，这区别在哪？举个例子，**就好比微信里的「语音消息」和「语音聊天」的区别**。

借助这个功能，**相信很快就会出现「实时通话」、「实时语音分析」、「即时电台」等类型的小程序**。

### 2. 新增相机组件

**这是一个新的 WXML 标签**：`<camera>`。

在这之前，小程序也能调起摄像头，但应用的是系统自己的相机。

借助于 `<camera>` 组件，**小程序可以在页面内嵌摄像头取景框，同时能自由切换前后摄像头、调起闪关灯**。

这对于部分摄像应用来说，能极大程度的优化前端体验效果。

### 3. 地图 API 更新

**地图上的标记可自定义图片**，再也不是纯一色的红色标点了。

同时，**在标记的旁边可以加一段可定义样式的注释文字**，定义方式为：定义 `<markers>` 时，追加 `label` 属性。

官方没有给出 demo，花叔研究了一下，**值得注意的是 `fontSize` 要带单位，偏移的 `x` 和 `y` 不需要单位**：

![](https://s3.ifanr.com/wp-content/uploads/2017/10/Artboard-8.jpg)

除此之外，**路线的箭头可以自定义图片**，但看上去比较鸡肋…… 总体效果如下：

![](https://s3.ifanr.com/wp-content/uploads/2017/10/Artboard-9.jpg)

### 4. 视频组件优化

现在，**小程序可以定义视频是否支持手势操作**。

这些手势控制，包括非全屏模式下，是否开启声音和亮度手势，同时支持横竖屏的监听。

也许未来在横竖屏切换的时候，视频小程序可以做出不一样的视觉体验。

### 5. 原生组件实现简单动画

它的实现原理是，**借助 `<cover>` 标签，把原生组件放置于 `<cover-view>` 中**，对 `<cover-view>` 进行简单的 CSS 动画定义。

但需要注意：**这个特性只支持 CSS transition 动画**，`transition-property` 只支持 `transform (translateX, translateY)` 与 `opacity`。

### 6. 可获取更多来源信息

`onLaunch`、`onShow` 函数参数追加 `referrerInfo`，实际上，就是默认追加一些来源信息。

![](https://s3.ifanr.com/wp-content/uploads/2017/10/Artboard-10.jpg)

个人感觉，这个也比较鸡肋…… **因为来源信息其实可以自定义 query，也能手动传递这些信息**。现在只不过是说默认可以加上而已，不需要开发者自己去定义。

总的来说，我觉得最有诚意的是「边录音边传」的录音 API，其他都不是特别大的改动。

花叔在想，既然能边录音边传了，**相信「边摄像边传」的功能也快要出来了吧？**

![](https://s3.ifanr.com/wp-content/uploads/2017/10/d4q6af4s2rccn9eff0ntt6xnfqz9085x.png)

「思维导图 Nodes」小程序使用链接  
<https://minapp.com/miniapp/2629/>

**关注「知晓程序」公众号 👇**

- 在微信后台回复「**开发**」，获取知晓程序开发全套经验。
- 在微信后台回复「**666**」，获取小程序开发 demo。

![](https://s3.ifanr.com/wp-content/uploads/2017/09/minapp-qrcode.gif)
