h5地理位置获取与多媒体

                                                                   h5地理位置获取与多媒体

   1.地理位置获取

       在h5当中有现成的关于获取到地理位置的方法window.navigator.geolocation,在h5中当用户同意地理位置获取之后有几个方法是用来对地理位置进行处理的具体方法如下:

    1.getCurrentPosition(s,e,p)  success 回调(必须) error回调  option 参数  
        使用chrome时需要进行翻墙才能获取到所需信息,如果获取数据成功了,
        position下面的几个参数
        latitude 纬度  longitude 经度  altitu 海拔   accurac 精确定位  altitudeAccuracy 海拔精确度  heading 方向 speed 速度
        positionError对象
        用户拒绝 code = 1  获取不到 code = 2 获取失败 code = 3
        options
        enableHighAccurary 是否获得高精度位置默认为false  timeout 单位是ms请求超过时间默认为inifite 
        maximumAge 单位ms,watchPosition方法则不断获取用户的地理位置信息,位置信息过期时间设置为0 表示无条件的获取新的地理位置信息

        2.watchPosition
        var id = gelocation.watchPosition(fn) 用于注册监听器,在设备的地理位置发生改变的时候自动被调用 参数与getCurrentPosition相同
        clearWatch(id)使用clearWatch清除监听

        3.devicemotion事件 监听加速度变化
        window.addEventLister('deviceMotion',function(event){
            consolo.log(event)
        })
        accelerationIncludingGravity(包含了地心引力,在Z轴上加上重力加速度g) 重力加速度
        acceleration 重力加速度(陀螺仪)
        rotationRate(alpha,beta,gamma) 旋转速率  alpha表示设备沿z轴上的旋转角度,范围0~360 beta表示设备在x轴上的旋转角度,范围-180~180,描述设备向前
        向后旋转     gamma  表示设备在y轴上的旋转角度,范围-90~90 描述设备左向右旋转                                      
        interval 获取时间间隔  以上属性均为只读属性

在下面有个关于h5的实际例子,这个例子只是简单的调用了window.navigator.getlocation下面的getCurrentPosition()方法,具体的代码实例如下:

  

在这个实例中只是简单的对获取地理位置时采用的方法进行了一个处理。

2.多媒体

  h5中的多媒体主要包括audio和video,在这之前市场上很多的关于视频的处理都使用的flash动画来处理,现在慢慢的flash都正在逐渐被取代。关于多媒体中的属性具体如下:

  audio音频 1.controls有控制面板出现能够直接控制播放  2.autoplay能够实现音频在刷新时自动播放
                3.preload(none/metadata/auto) 规定是否在页面加载后载入视频  none 表示不需要加载数据
                metadata 原数据 诸如加载时长,比特率,帧数率这样的原数据而不是媒体内容需要加载
                auto 浏览器应该加载它认为适量的媒体内容
                4.loop 是否循环播放音/视频
                5.poster(video独有) 当视频不可以使用时,使用一张图片代替 poster = './' 否则就会是空白
                通常都会将帧数率为0的第一张图片作为poster内容,防止视频内容没有被加载出来时有内容展示

<audio src="./name.mp3" controls autoplay preload="auto"></audio>
 多资源整合 
        <audio id="music">
            <source src="name.mp3" type="audio/mpeg">
            <source src="name.ogg" type="audio/ogg">
        </audio> 

在上面的这段代码中主要是通过直接在html结构上直接添加,我们也可以通过js动态的生成然后再来进行添加。在动态的创建过程中有两种方式来对其进行处理:

第一种创建方式:var audio = new Audio('./name.mp3');
        audio.controls = true;
        audio.loop = true;
        audio.autoplay = true;
        audio.preload = "auto";
        document.body.appendChild(audio);

第二种创建方式:var audio = document.createElement('audio');
        audio.src = "./name.mp3";
        document.body.appendChild(audio);
         //有两种方式可以代替1.audio.controls = true; 2.audio.controls = "controls";
        audio.controls = true;
        audio.loop = true;
        audio.autoplay = true;
        audio.preload = "auto";

输出文件地址
            console.log(audio.currentSrc);
    播放方法Play
            audio.play();
暂停方法pause
            audio.pause();
重新加载视频,用于更改来源或者是其他设置以后对音频或者视频进行重新加载
            audio.load();
设置音频或者是视频的音量在小 volume的范围在0 到 1之间,当超过范围时就会报错
       audio.muted = true 设置时,音频为静音,当其为false时,音频恢复之前的音量
播放倍速控制,当降低或者加快到一定倍速时,音频或者是视频就会自动的停止
           playbackRate 1为正常播放速度,大于1为加快,小于1为回放,现在一般不会有此功能出现,都是通过进度条展示
            audio.playbackRate = 4;
currentTime/duration属性
        currentTime 设置或者返回当前音频或者视频的播放位置
 audio.currentTime = 50;
            audio.currentTime返回当前音频播放时间
返回当前音频总的播放时间为多少
            console.log(audio.duration);

TimeRanges对象,有三个属性played属性返回当前已经播放的时间段,buffered属性返回当前已经缓冲过的时间段,seekable
返回用户跳转的时间段,三个属性都是TimeRanges的对象,每个对象都有一个length属性以及start()和end()方法,length表示
当前的一个时间段,start()和end()分别返回起始时间点和结束时间点(单位是秒)

paused/seeking/ended 这三个属性用来查询媒播放状态,pause为true表示播放器停止,seeking为true表示播放器正在调到一个新的播放点
如果播放器播放并且停下来,则ended属性为true

事件 play开始播放触发,pause暂停触发 loadedmetadata 浏览器获取完媒体的原数据触发 loadedadata 浏览器已经加载完当前帧数据准备触发
ended 当前播放结束后触发

猜你喜欢

转载自blog.csdn.net/care_yourself/article/details/100035997