小编Sat*_*h J的帖子

如何在 Avfoundation 中正确更改采样率

我已经完成了这个简单的程序。它所做的只是同时记录和回放缓冲区。如果采样率为 44100 hz,一切正常,但如果我将采样率更改为 16000 或 8000,它根本不会产生任何声音,或者可能是一些听不见的白噪声。为什么会发生这种情况?

如何以不同的采样率进行录制?

以下代码我试过:

import UIKit
import AVFoundation

class ViewController: UIViewController  {

var engine = AVAudioEngine()
let player = AVAudioPlayerNode()
let audioSession = AVAudioSession.sharedInstance()
let newSrc:UnsafeMutablePointer<Float>! = nil
override func viewDidLoad() {
super.viewDidLoad()



let audioSession = AVAudioSession.sharedInstance()
print(audioSession.sampleRate) // here it prints 44100 hz. because it still using the internal mic.
do {

    try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .allowBluetooth)
    try audioSession.setMode(AVAudioSessionModeDefault)
    try audioSession.setActive(true)

} catch {
}
print(audioSession.sampleRate) // here it will print 16000 hz if my bluetooth …
Run Code Online (Sandbox Code Playgroud)

audio avfoundation sample-rate ios swift

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

ConstraintLayout:基于百分比的尺寸

我可以使用约束布局中的水平和垂直偏差基于屏幕尺寸设置UI元素的位置。

但是,UI元素的宽度和高度不会根据屏幕大小而改变,因此看起来仍然不完美。

那我怎么能做到这一点呢?

下面是我的源代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context="com.satizh.android.constraintlayouttest.MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="125dp"
        android:layout_height="47dp"
        android:layout_marginBottom="0dp"
        android:layout_marginLeft="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginTop="0dp"
        android:layout_weight="68"
        android:text="5%V30%H"

        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.3"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.050000012" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_marginTop="0dp"
        app:layout_constraintTop_toBottomOf="@+id/button"
        android:layout_marginRight="0dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginLeft="0dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintHorizontal_bias="0.915"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginBottom="0dp"
        app:layout_constraintVertical_bias="0.138" />

    <android.support.constraint.Guideline
        android:id="@+id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.14" />

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/guideline2"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.05" />

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/guideline3"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.2" />

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/guideline4"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.53" />

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

我已经创建了一些指导原则(以百分比为单位),以便我们可以猜测旋转设备时基于屏幕的UI按钮的实际外观。这是更好理解的gif。

在此处输入图片说明

android android-layout android-view android-constraintlayout

4
推荐指数
1
解决办法
3540
查看次数

如何在Swift IOS中打印出所有约束常量?

我可以通过使用,打印出主视图约束常数,

for v in view.constraints {
    print(v.constant)
}
Run Code Online (Sandbox Code Playgroud)

但它也不会遍历子视图来打印它们的约束.所以,我...

for subview in view.subviews {
    for v in subview.constraints {
        print(v.constant)
    }
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,如果子视图本身就是一个视图?.在这种情况下,如何打印出子视图 - >视图约束常量.可能是子视图中的视图可能有自己的子视图等等......

要解决这个问题,我可以简单地为所有视图创建出口,然后我必须逐个迭代它们以获得它的约束常量.

但我觉得必须有一个简单的方法来打印出所有约束常量(在特定视图控制器下的故事板中创建的所有约束),以编程方式完成而不创建出口.

简而言之 :

如何打印视图控制器中的所有storybaord约束常量请注意:视图控制器可能有多个视图和子视图,子视图可能有自己的子视图.所以我们需要创建一个算法,如果使用的话,它可以有效地在任何类型的视图控制器中打印出约束常量.

ios swift

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