微信小程序开发的坑

最近在做微信小程序,知识付费类的,需要播放背景音频。微信版本6.6.5

  1. iOS上播放没有问题,Android上播放出现随机播放不了的情况?早已经排除网上说的 title 没有传值的情况。
    解决: 后面发现是 播放url 里面多了一个 '/', 像这样 https://xxx.com/api//playmedia?id=xxx&name=xxx 这种情况iOS播放没有问题,但Android会随机出现问题。

  2. 解决了上面1的问题,又发现播放某个课程下的音频的时候,老是播放不了?
    解决:排除小程序代码本身的问题,因为所有音频播放都是同一个函数。后来抓包,发现播放这个音频的时候,调用了2次服务器音频接口,百思不得其解, 仔细查看request的header头信息,发现有时候请求会带“ range”参数,所以这个时候需要特别处理。因为是用

/// 方法一
var readstream = fs.createReadStream(filepath);
readstream.pipe(res);

这种形式,所以有“range”参数是需要计算起始位置的:

/// 方法二
var stream = fs.createReadStream(filepath, {
                            "start": range.start,
                            "end": range.end
                        });

stream.pipe(res);

如果不计算,还是使用方法一,就会出现莫名播放不了的情况。

大概是因为小程序有缓存,如果小程序发现有音频下载过部分,它会带“range”参数。

  1. mp3格式导致iOS手机播放不了?
    有些mp3的格式是带封面的,这样的格式在iOS上播放不了,Android上可以播放。红色箭头的这种就不行,绿框的才行。


    mp3格式问题.jpg
  1. 使用开发者工具做远程调试Android手机,经常出现什么第三方sdkxxx错误,导致setStorageSync不成功。开发者工具版本1.02.1802080


    开发者工具远程调试错误.jpg
  2. 在基础库2.3.0上使用Map组件的enable-scroll功能,禁止地图的拖动。
    下面代码无效

<map id="map" enable-scroll="false" longitude="113.324520" latitude="23.099994" scale="14" style="width: 100%; height: 300px;"></map>

下面代码ok

<map id="map" enable-scroll="{{false}}" longitude="113.324520" latitude="23.099994" scale="14" style="width: 100%; height: 300px;"></map>

猜测是微信小程序解析的问题。

因为自己前后端都做,所以找问题还稍微方便点。如果是多人合作,这些诡异的问题估计需要花不少时间

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,896评论 25 709
  • 最近忙于开发视频直播的项目,小程序学习也放置了两三个星期了,web开发者工具更新到新版,发现上个版本做的demo不...
    Leo丶Dicaprio阅读 87,487评论 31 31
  • 今儿初七立春,一早起就是听着老两口拌嘴声“你到底会不会用马桶冲水啊”这个自从家里老式蹲坑取代马桶时出现的“家庭矛盾...
    苍绿成荫阅读 1,105评论 0 0
  • 前几日,我的文章《对不起,我不想拿着彩礼哭》,或许触到了很多人的痛点,在头条号获得了3万+的阅读量,也收获了不少的...
    王小姐要努力阅读 2,962评论 1 2
  • 微博转发中了一个耳机,公众号留言得来一次免费体验酒店的机会,这些都算的上生活中的小确幸吧,只是,带来快乐的时间太短...
    等等的过去未来进行式阅读 936评论 0 0