搜索

首页  >  问答  >  正文

html - Safari里表单input怎么上传音频文件?


表单里用<input type="file">,iphone手机Safari浏览器中,点击上传文件只有这几个选项,怎么样可以添加“本地选择器”或者“音频选择”这样的选项?我只想可以上传音频,请各路大神拯救。

高洛峰高洛峰2820 天前1580

全部回复(3)我来回复

  • 大家讲道理

    大家讲道理2017-04-18 09:36:11

    嗯,无解。 用户只能从相册里选文件,如果加个可以选音频,那用户从哪里选音频文件?铃声?开玩笑。录音?native app都没这个权限。

    如果非要这个功能,可以让用户上传视频,然后后台提取音频

    --- update:

    其实这个也不怎么费事,用户传的视频都不会很大,两三台服务器就搞定了。这个功能用的少的话一台服务器就可以了。当然你也可以省事的用CDN,现在的CDN大多都提供media转换处理,掏点钱就行了。

    Android 机器的话还可以用 Java 或 Flash 前端抽取音频。

    另外,还有个比较二的方法就是上传视频,但是前段只播放音频,让用户看不到视频内容,但是除了用户要下载的文件可能比较大之外,还会牵扯隐私。

    所以,如果你这个功能可有可无,那就趁早放弃这个念头。如果这个功能必须有,那建议使用 CDN ,或者自己搞个服务器用 ffmpeg 专门处理这个。

    稍微有点规模的社交应用里,这种做法其实很常见,我们公司在09年就搞过类似的,要把客户端用户录制的speex音频在电脑网页和手机网页上播放,我调研了几天,尝试了几种方案,最后还是用服务端转了。还有Twitter把用户上传的GIF转换成了视频文件。在现代web里,服务端转换个视频跟处理用户上传的图片一样了。

    --- update:

    还有一种方案,就是让用户在微信里录制和上传音频。微信的JS SDK有相关接口。就是不知道跟你的产品需求搭不搭。

    回复
    0
  • 高洛峰

    高洛峰2017-04-18 09:36:11

    答案就是不行,Safari 没有这样的 API

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:36:11

    某些安卓机可以这么做的,iOS你可以试试。
    <input type="file" accept="audio/*">

    accept是标准HTML5属性。

    回复
    0
  • 取消回复