小编And*_*rds的帖子

IOS视频压缩Swift iOS 8损坏的视频文件

我正在尝试用UIImagePickerController压缩用户摄像头拍摄的视频(不是现有的视频,而是一个即时的视频)上传到我的服务器并花费少量时间这样做,所以较小的尺寸是理想的而不是30-新品质相机45毫升.

这是在iOS 8中使用swift进行压缩的代码,它压缩得非常好,我从35 mb轻松到2.1 mb.

   func convertVideo(inputUrl: NSURL, outputURL: NSURL) 
   {
    //setup video writer
    var videoAsset = AVURLAsset(URL: inputUrl, options: nil) as AVAsset

    var videoTrack = videoAsset.tracksWithMediaType(AVMediaTypeVideo)[0] as AVAssetTrack

    var videoSize = videoTrack.naturalSize

    var videoWriterCompressionSettings = Dictionary(dictionaryLiteral:(AVVideoAverageBitRateKey,NSNumber(integer:960000)))

    var videoWriterSettings = Dictionary(dictionaryLiteral:(AVVideoCodecKey,AVVideoCodecH264),
        (AVVideoCompressionPropertiesKey,videoWriterCompressionSettings),
        (AVVideoWidthKey,videoSize.width),
        (AVVideoHeightKey,videoSize.height))

    var videoWriterInput = AVAssetWriterInput(mediaType: AVMediaTypeVideo, outputSettings: videoWriterSettings)

    videoWriterInput.expectsMediaDataInRealTime = true

    videoWriterInput.transform = videoTrack.preferredTransform


    var videoWriter = AVAssetWriter(URL: outputURL, fileType: AVFileTypeQuickTimeMovie, error: nil)

    videoWriter.addInput(videoWriterInput)

    var videoReaderSettings: [String:AnyObject] = [kCVPixelBufferPixelFormatTypeKey:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange]

    var videoReaderOutput = AVAssetReaderTrackOutput(track: videoTrack, outputSettings: videoReaderSettings)

    var …
Run Code Online (Sandbox Code Playgroud)

compression video corrupt ios swift

17
推荐指数
2
解决办法
8288
查看次数

iOS 12 建议选择我自己的密码的强密码文本字段委托回调

在 iOS 12 中,我有一个用于注册流程的新密码文本字段,我希望系统建议一个强密码。我还有一个基于委托方法启用和禁用的按钮,我做了一些更改等。

textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String)

这对于在用户点击 时启用它很有用Use Strong Password。但是我似乎没有收到用户可能点击时的委托回调,Choose My Own Password因此我的按钮启用/禁用逻辑永远没有机会执行,允许某人使用空白密码进行注册。

建议密码

关于当用户点击时我可能不需要做什么来获得回调的任何想法Choose my own password?任何帮助是极大的赞赏。

uitextfield ios swift ios12

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

使用BottomBar和片段容器禁用Android片段重新加载

好的,所以我正在构建一个使用该库进行底部导航的android应用,并且我正在使用基本Activity将其与Framelayout一起保存以管理我的片段以进行加载/替换等。

起作用的方法: 点击底部的条形图标可加载其对应的片段,并且效果很好。

我的问题: 如果我点击第一个选项卡,然后在第二个选项卡,然后在第一个选项卡再次从头开始,整个片段重新加载。

我不要这种行为。人对如何同时保留一个片段的状态什么好的建议ALSO使用底栏库。

我在以前的应用程序中使用pagerview实现了类似的功能(先前的应用程序未使用底部栏进行导航),但是我不确定如何使用具有ONE基本活动的寻呼机视图,该活动保留了Framelayout来替换片段,或者那甚至是最好的解决方案。

我喜欢到目前为止我拥有的解决方案,只是每次碎片替换前一个碎片时都会从头重新加载。如果任何人有任何帮助或建议可以帮助我,将不胜感激。

navigation android android-fragments android-viewpager

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

具有不同访问模式 C++ 的多个指向同一文件的指针

是否可以让多个 FILE * s 指向具有不同访问模式的同一个文件?例如

假设我有fopen("File1.bin","wb",fp1)并且我执行写操作并且没有使用 fclose 关闭文件我调用fopen("File1.bin","rb",fp2)并尝试对其使用写操作。这应该失败。但是当我使用不同的访问模式时,fp2 仍然会向它写入内容。为什么?

c++ file mode

2
推荐指数
1
解决办法
1329
查看次数

Google Cloud Build Dockerfile中的Google AppEngine ENV变量

所以我有一个CloudBuild触发器来构建我的cloudbuild.yaml文件,一切都很好。我还使用gcloud构建器运行docker命令,将ENV变量传递给我的Dockerfile。例如:

steps:
- name: 'gcr.io/$PROJECT_ID/swift:4.2'
  args: ['test']
  id: 'Running unit tests'

- name: 'gcr.io/cloud-builders/docker'
  args: ['build','--build-arg', 'PROJECT=$PROJECT_ID','-t', 'us.gcr.io/$PROJECT_ID/$BRANCH_NAME:$SHORT_SHA', '.']
  id: 'Building docker image'

- name: 'gcr.io/cloud-builders/docker'
  args: ["push", "us.gcr.io/$PROJECT_ID/$BRANCH_NAME:$SHORT_SHA"]
  id: 'Pushing built image to registry'

- name: 'gcr.io/cloud-builders/gcloud'
  args: ['app', 'deploy']
  id: 'Deploying to AppEngine'
timeout: 1800s # 30 minute timeout
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在使用所有GCP资源默认具有的ENV变量($PROJECT_ID例如)。在docker命令中,我将其作为参数传递,因此可以ARG在dockerfile中使用该命令:

ARG PROJECT
FROM gcr.io/${PROJECT}/swift:4.2 as builder
WORKDIR /App
#Other commands....
Run Code Online (Sandbox Code Playgroud)

现在,所有这些都可以正常工作,并且我能够构建自己的映像等。现在,我想在最后一步中将其部署到App Engine。唯一的问题是,我使用相同的Dockerfile来使用swift:4.2仅位于我的GoogleContainerRegistry中的基本映像,因此我需要$PROJECT_ID我的项目将其拉出。

我的问题是:有什么方法可以让AppEngine构建环境在部署时将参数传递给构建我的映像的docker构建?我有一个app.yaml文件,并且我知道有一个env_variables: …

google-app-engine app.yaml docker google-cloud-platform google-cloud-build

2
推荐指数
1
解决办法
669
查看次数