标签: record

Android:以mp3格式录制声音

我正在构建一个Android应用程序,具有通过麦克风捕获声音并通过耳机播放的功能.为此,我使用了"AudioRecord"和"AudioTrack".以下是我正在使用的代码的一部分(仅用于理解)

mInBufferSize = AudioRecord.getMinBufferSize(mSampleRate,
            AudioFormat.CHANNEL_CONFIGURATION_MONO, mFormat);
mOutBufferSize = AudioTrack.getMinBufferSize(mSampleRate,
            AudioFormat.CHANNEL_CONFIGURATION_MONO, mFormat);
mAudioInput = new AudioRecord(MediaRecorder.AudioSource.MIC,
            mSampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO, mFormat,
            mInBufferSize);
mAudioOutput = new AudioTrack(AudioManager.STREAM_MUSIC, mSampleRate,
            AudioFormat.CHANNEL_CONFIGURATION_MONO, mFormat,
            mOutBufferSize, AudioTrack.MODE_STREAM);
Run Code Online (Sandbox Code Playgroud)

但主要的问题是我想以mp3格式录制传入的声音?请帮助我,我真的很感激......

提前致谢

mp3 android record

15
推荐指数
2
解决办法
3万
查看次数

如何使用ffmpeg录制特定窗口?

我使用ffmpeg使用以下代码记录窗口:

ffmpeg.exe
-f dshow 
-y 
-i video="screen-capture-recorder":audio="virtual-audio-capturer":audio="Microphone (USB Audio Device)" 
-framerate 15 
-vcodec libx264 
-crf 0 
-preset ultrafast 
-acodec pcm_s16le 
-vf crop=Width:Height:Left:Top 
output.flv
Run Code Online (Sandbox Code Playgroud)

但问题是我可能会移动窗口,这会导致记录一个没有我想要的窗口的区域.

如何捕获我能够移动它的特定窗口?


编辑:我也习惯gdigrab捕捉我的窗口(Skype例如)而不是dshow:

ffmpeg.exe
-y
-f dshow
-i audio="virtual-audio-capturer":audio="Microphone (USB Audio Device)"
-f gdigrab
-draw_mouse 0
-i title="Skype"
-framerate 30
-vcodec libx264
-crf 0
-preset ultrafast
-acodec pcm_s16le
output.flv
Run Code Online (Sandbox Code Playgroud)

但会议是黑色的......

ffmpeg gdi window record screen-capture

15
推荐指数
3
解决办法
2万
查看次数

Haskell记录语法和类型类

假设我有两种数据类型Foo和Bar.Foo有字段x和y.条形图有字段x和z.我希望能够编写一个函数,它将Foo或Bar作为参数,提取x值,对其执行一些计算,然后返回一个新的Foo或Bar,并相应地设置x值.

这是一种方法:

class HasX a where
    getX :: a -> Int
    setX :: a -> Int -> a

data Foo = Foo Int Int deriving Show

instance HasX Foo where
    getX (Foo x _) = x
    setX (Foo _ y) val = Foo val y

getY (Foo _ z) = z
setY (Foo x _) val = Foo x val

data Bar = Bar Int Int deriving Show

instance HasX Bar where
    getX (Bar x _) = x
    setX (Bar …
Run Code Online (Sandbox Code Playgroud)

haskell types class record

14
推荐指数
1
解决办法
6929
查看次数

Haskell - 任何限制或消除记录名称的方法?

我有两种数据类型,用于hastache模板.在我的代码中有两种不同的类型是有意义的,都有一个名为"name"的字段.当然,这会引发冲突.似乎有一种机制可以消除对"name"的任何调用的歧义,但实际的定义会导致问题.是否有任何解决方法,比如让记录字段名称合格?

data DeviceArray = DeviceArray
    { name :: String,
      bytes :: Int }
    deriving (Eq, Show, Data, Typeable)

data TemplateParams = TemplateParams
    { arrays :: [DeviceArray],
      input :: DeviceArray }
    deriving (Eq, Show, Data, Typeable)

data MakefileParams = MakefileParams
    { name :: String }
    deriving (Eq, Show, Data, Typeable)
Run Code Online (Sandbox Code Playgroud)

即如果字段现在在代码中使用,它们将是"DeviceArray.name"和"MakefileParams.name"?

haskell record

14
推荐指数
3
解决办法
2745
查看次数

iOS:用于同时录制和播放的示例代码

我正在为多轨录音机设计一个简单的概念证明.

明显的出发点是从文件A.caf播放到耳机,同时将麦克风输入录制到文件B.caf中

这个问题 - 同时录制和播放音频 - 指出我可以在三个级别工作:

  • AVFoundation API(AVAudioPlayer + AVAudioRecorder)
  • 音频队列API
  • 音频单元API(RemoteIO)

工作的最佳水平是什么?显然,通用答案是在完成工作的最高级别工作,这将是AVFoundation.

但是,由于延迟问题(他在文件之间有0.3秒的延迟),我正在接受这项工作,所以也许我需要在较低级别工作以避免这些问题?

此外,跳板有哪些源代码?我一直在看SpeakHere示例(http://developer.apple.com/library/ios/#samplecode/SpeakHere/Introduction/Intro.html).如果我找不到更简单的东西,我会用它.

但是,任何人都可以建议更简单/其他吗?如果我能避免它,我宁愿不使用C++代码.

有人知道一些使用AVFoundation的公共代码吗?

编辑:AVFoundation示例:http ://www.iphoneam.com/blog/index.php?title=using-the-iphone-to-record-audio-a-guide&more=1&c=1&tb=1&pb =1

编辑(2):这里看起来好多了:http://www.switchonthecode.com/tutorials/create-a-basic-iphone-audio-player-with-av-foundation-framework

编辑(3):如何使用AVAudioRecorder在iPhone上录制音频?

audio record simultaneous playback ios

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

我需要在Delphi中完成记录数组吗?

在我的申请中,我有以下记录:

TTransaction = record
  Alias: string
  Description: string
  Creation: TDateTime
  Count: Integer
end;
Run Code Online (Sandbox Code Playgroud)

我在这个数组中使用此记录:

Transactions = array of TTransaction;
Run Code Online (Sandbox Code Playgroud)

我在运行时保持数组加载,但在给定时间我需要清除所有数据并添加一些新数据.

仅仅使用它就足够了:

SetLength(Transactions, 0); ?
Run Code Online (Sandbox Code Playgroud)

或者我需要完成一些事情吗?

delphi record finalization dynamic-arrays delphi-6

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

为什么OCaml不支持记录子类型?

阅读"类型和编程语言",我对使用闭包和记录子类型的对象实现印象深刻(第18章).是否有任何特殊原因OCaml不支持记录子类型(我知道对象确实如此)?事实上,我找不到任何支持这种语言的语言.

ocaml record subtyping

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

用约束类型写GADT记录

我有以下代码编译在我的程序中:

{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}

class (Show (Data a)) => HasData (a :: *) where
    type Data a :: *

data Foo :: * -> * where
    Foo :: (HasData a) => String -> Data a -> Int -> Foo a -- bunch of args

deriving instance Show (Foo a)
Run Code Online (Sandbox Code Playgroud)

由于Foo构造函数的参数数量可以很多,我想使用记录语法编写代码,但我无法弄清楚如何使用GADT语法(GHC弃用的数据类型上下文,所以我试图避免它们) :

data Foo :: * -> * where
    Foo {
        getStr …
Run Code Online (Sandbox Code Playgroud)

haskell record type-constraints gadt

14
推荐指数
1
解决办法
2837
查看次数

更新Elm中记录内嵌套值的简明方法(0.18)

我正在寻找一种简洁的方法来更新Elm(0.18)中记录内的嵌套值.

给出以下示例:

person = { name = "Steven", address = { country = "Spain", city = "Barcelona" } }
Run Code Online (Sandbox Code Playgroud)

我可以使用以下表达式将person.name更新为"Steve":

{ person | name = "Steve" }
Run Code Online (Sandbox Code Playgroud)

但是,我正在寻找一种更新嵌套值的方法.例如,我想将person.address.city更新为"Madrid".我尝试了以下方法:

{ person | address.city = "Madrid" } 
{ person | address = { address | city = "Madrid" } } 
{ person | address = { person.address | city = "Madrid" } } 
Run Code Online (Sandbox Code Playgroud)

编译器拒绝所有这些变化.我看到的最短有效选项是:

let personAddress = person.address in { person | address = { personAddress | city = "Madrid" } } …
Run Code Online (Sandbox Code Playgroud)

record elm

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

我可以使用 C# 9 记录作为 IOptions 吗?

我刚刚开始使用 C# 9 和 .NET 5.0,特别是新record结构。我发现我有很多关于记录类型速记语法的优秀用例。

我考虑过的用例之一是对 ASP.NET Core 应用程序使用recorddto in IOptions<>,而不是常规类。这些选项类通常很简单,所以我认为它非常适合,但似乎我不能让它轻松工作,因为使用配置应用程序IOptions<>需要对象具有无参数构造函数。

public record MyOptions(string OptionA, int OptionB);

public class Startup
{
    public void ConfigureServices(IServiceCollection services) {
        services.Configure<MyOptions>(Configuration.GetSection(nameof(MyOptions)));
    }
...
}

public class MyController : Controller 
{
    private readonly MyOptions _options;
    public MyController(IOptions<MyOptions> options) {
        _options = options.Value;  // This throws an exception at runtime
    }
}

Run Code Online (Sandbox Code Playgroud)

上面的示例在尝试访问该IOption<>.Value属性时抛出以下异常:

System.MissingMethodException: '没有为类型 'AcmeSolution.MyOptions' 定义无参数构造函数。

有没有办法配置IOptions配置系统以使用记录的构造函数反序列化选项,而不是需要无参数的构造函数?

我可以对记录使用普通语法,但是使用类确实没有任何好处。

c# record c#-9.0

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