小编Joh*_*ohn的帖子

iOS Swift - 如何获取本地和远程视频的纵横比?

场景:我正在应用程序中构建 WebRTC 视图视频容器的高度始终为 160。

在容器的中心应该显示最大高度为 160 的远程视频,宽度应该缩放以尊重视频的纵横比。宽度也不能大于视图宽度,在这种情况下,宽度将等于视图宽度,高度应适应纵横比。

在右上角应显示来自前置摄像头的本地视频,最大宽度为 100,高度应调整以尊重本地视频的纵横比

到目前为止我的代码:

func createPeerConnection () {
    // some other code

    self.localStream = self.factory.mediaStream(withStreamId: "stream")
    let videoSource = self.factory.videoSource()

    let devices = RTCCameraVideoCapturer.captureDevices()
    if let camera = devices.last,
        let format = RTCCameraVideoCapturer.supportedFormats(for: camera).last,
        let fps = format.videoSupportedFrameRateRanges.first?.maxFrameRate {
        let intFps = Int(fps)
        self.capturer = RTCCameraVideoCapturer(delegate: videoSource)
        self.capturer?.startCapture(with: camera, format: format, fps: intFps)
        videoSource.adaptOutputFormat(toWidth: 100, height: 160, fps: Int32(fps))
    }

    let videoTrack = self.factory.videoTrack(with: videoSource, trackId: "video")
    self.localStream.addVideoTrack(videoTrack)

    DispatchQueue.main.async {
        if self.localView == nil …
Run Code Online (Sandbox Code Playgroud)

ios swift swift5

16
推荐指数
1
解决办法
2313
查看次数

是否有必要每次请求刷新令牌?

我在这里因为我对谷歌上发现的东西不满意.

我一般都在构建SPA,所以对我来说这个过程很简单:成功登录后会生成一个jwt并将其用于我从客户端发出的每个请求.

有人告诉我,我应该刷新该令牌并为我提出的每个请求发回一个新令牌.这对我来说有意义吗?我的意思是,如果有人试图破解我,嗅探请求将给黑客提供我收到的相同令牌,那么捕获的是什么?

我的意思是,如果我在另一个请求完成之前发出请求怎么办?从理论上讲,我会发送两次相同的令牌,其中一个请求将被拒绝.

这是如何正确处理的?我相信这比我自己想象的更多.

api token jwt single-page-application

8
推荐指数
1
解决办法
8723
查看次数

如何使用webpack动态导入

我想使用FontAwesome的图标,但整个包太大了,我只能选择我正在使用的那些

我正在使用vue和webpack

现在我有标准:

import { library } from '@fortawesome/fontawesome-svg-core'

import { faGem as falFaGem, faDatabase as falFaDatabase } from '@fortawesome/pro-light-svg-icons'
import { faGem as farFaGem } from '@fortawesome/pro-regular-svg-icons'
import { faGem as fasFaGem } from '@fortawesome/pro-solid-svg-icons'

library.add(falFaGem, falFaDatabase, farFaGem, fasFaGem)
Run Code Online (Sandbox Code Playgroud)

事情是我有大约80个(现在)图标,其中一些像示例中的faGem一样重复,因此"faGem as farFaGem"

我尝试从'@ fortawesome/pro-regular-svg-icons'导入FAS并制作一个foreach并向库中添加我需要的图标但是webpack将整个包导入到编译的代码中

是否有更简单,更清洁的方法来实现这一目标?

javascript ecmascript-6 webpack

7
推荐指数
1
解决办法
237
查看次数

如何在父母和孩子之间共享过滤器

//主要的js

window.chat = new Vue({
    el: '#Chat',
    components: {
        chat: Vue.extend(require('./../components/chat/component.vue'))
    },
    filters: {
        emoji: function(content){
            return content;
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

//聊天script.js

module.exports = {
    components: {
        message: Vue.extend(require('./../components/message/component.vue'))
    }
}
Run Code Online (Sandbox Code Playgroud)

//消息模板

<span>{{{ message.text | emoji }}}</span>
Run Code Online (Sandbox Code Playgroud)

这东西给了我

app-1.0.4.js:12304 [Vue warn]: Failed to resolve filter: emoji (found in component: <message>)
Run Code Online (Sandbox Code Playgroud)

我试过$ root.emoji和$ root.filters.emoji只是为了尝试,但它没有用.

那我该怎样才能做到这一点呢.我真的想将过滤器保留在main.js中

vue.js

6
推荐指数
1
解决办法
1921
查看次数

未针对文件触发 DragEnd 事件

我的模板:

<div class="upload-component" @dragend="log('end')" @dragenter="dragEntered" @drop.prevent @dragover.prevent>
    <div class="zone" @drop="dropped">
        
    </div>
    <p draggable="true">drag me</p>
</div>
Run Code Online (Sandbox Code Playgroud)

我的js:

export default {
        name: 'UploadComponent',
        methods: {
            log(str){
                console.log(str)
            },
            dragEntered(e){
                // change some styles
            },
            dropped(e){
                console.log(e.dataTransfer.files)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题:
如果我拖动 P 元素并将其放下或单击转义键,它将记录“结束”。如果我从桌面上获取一个文件并将其放回桌面或按转义键或将其删除,则该dragend事件不会触发,也不会记录任何内容

javascript dom-events vue.js vuejs2

6
推荐指数
1
解决办法
1618
查看次数

Vagrant在Chrome上无法使用localhost扩展程序

我有一台2015 Mac与macOs Sierra.在apache和php出现太多问题后,我决定运行Vagrant.我正在为我的工作运行box.scotch.io

在Vagrant之前,我按如下方式配置了hosts文件:

127.0.0.1 devsite.localhost
127.0.0.1 sub.devsite.localhost
Run Code Online (Sandbox Code Playgroud)

请记住,我无法更改域和扩展,因为它不是我的项目,我必须使用它们才能使某些重定向和API工作.

在Vagrant之后,我将其更改为:

192.168.33.10 devsite.localhost
192.168.33.10 sub.devsite.localhost
Run Code Online (Sandbox Code Playgroud)

编辑了vagrant里面的conf文件后,它运行正常.但不是铬.我已经在safari和firefox中测试过,它运行正常.出于某种原因,在Chrome上,这两个人仍在向我展示apache2文件.所以我去了我的本地apache中的conf文件(出于某种原因).唯一改变的是现在它显示403禁止(所以仍然是apache).我试过关闭apache.现在它告诉我"这个站点无法到达"

我已经ping了它们,它显示了正确的IP(流浪的IP).我刷了DNS(从终端和chrome) - 仍然无法正常工作.我试过重启chrome-nope.我试着重新启动笔记本电脑 - 不.

所以我认为chrome dooes不会重新加载hosts文件,因此我将它从.localhost更改为.localhost2或.local.现在它向我展示了来自流浪汉的404.

奇怪的部分 - >我放在.localhost作为扩展名的所有东西都不适用于Chrome ... abclocalhost将无法正常工作.如果我启动apache,abclocalhost将显示403禁止apache,即使它不在hosts文件中.

请注意,在Firefox和Safari中它工作正常.但我真的需要chrome和.localhost扩展

我已经在这个问题上失去了差不多2天,我不能再失去另一个

apache macos hosts vagrant

5
推荐指数
1
解决办法
926
查看次数