小编sle*_*dav的帖子

Android AudioRecord示例

我正在设计一个Android应用程序,我需要实现一个AudioRecord类来记录用户的声音.经过一些研究(没有提供足够的信息)和几次失败的尝试,我想知道是否有人可以通过发布关于如何使用AudioRecord捕获高质量声音的示例(代码)来帮助我.我真的很感激.谢谢

audio android audiorecord android-audiorecord

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

在显示器上使用.getWidth是否安全,即使它已被弃用

所以我有一个小问题,我正在编写一个需要向服务器发送屏幕宽度的功能.我得到了一切工作,我使用:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
Run Code Online (Sandbox Code Playgroud)

获得宽度.但是.getWidht()函数已被弃用,它表示你需要使用:

Point size = new Point();
display.getSize(size);
Run Code Online (Sandbox Code Playgroud)

但是这个功能只适用于api等级13或更高,而我的最小sdk是8.那我该怎么办?如果我留在getWidth是否安全?为什么要添加新功能而不使它们向后兼容?

android deprecated width

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

mongo中的子文档索引

ensureIndex(data)当典型数据看起来像我打电话时到底发生了什么data:{name: "A",age:"B", job : "C"}?它会在这三个字段上创建一个复合索引,还是只在请求数据的任何内容或完全不同的东西时才创建一个索引?

indexing mongodb

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

Android AudioRecord支持的采样率

我正在试图弄清楚运行Android 2.2及更高版本的手机支持哪些采样率.我们想以低于44.1kHz的速率进行采样,而不必重新采样.
我知道所有手机都支持44100Hz,但是想知道是否有一张桌子显示哪些采样率对特定手机有效.我已经看过Android的文档( http://developer.android.com/reference/android/media/AudioRecord.html),但它没有多大帮助.
有没有人找到这些采样率的清单?

audio android android-audiorecord

34
推荐指数
3
解决办法
4万
查看次数

Android:AudioRecord类问题:永远不会调用回调

我的Android Java应用程序需要将音频数据记录到RAM中并进行处理.这就是我使用"AudioRecord"类而不是"MediaRecorder"(仅记录到文件)的原因.

直到现在,我使用繁忙的循环轮询"read()"来表示音频数据.到目前为止,这一直在起作用,但它过多地占用了CPU.在两次民意调查之间,我将线程置于休眠状态以避免100%的CPU使用率.但是,这并不是一个干净的解决方案,因为无法保证睡眠时间,您必须减去安全时间,以免丢失音频片段.这不是CPU的最佳选择.对于并行运行的线程,我需要尽可能多的空闲CPU周期.

现在我使用"OnRecordPositionUpdateListener"实现了录制.根据SDK Docs,这看起来很有前途,也是正确的方法.一切似乎都有效(打开音频设备,读取()数据等)但从不调用Listner.

有人知道为什么吗?

信息:我正在使用真实的设备,而不是在仿真器下.使用Busy Loop录制基本上可以工作(但不是满意).永远不会调用Callback Listener.

这是我的源代码片段:

public class myApplication extends Activity {

  /* audio recording */
  private static final int AUDIO_SAMPLE_FREQ = 16000;
  private static final int AUDIO_BUFFER_BYTESIZE = AUDIO_SAMPLE_FREQ * 2 * 3; // = 3000ms
  private static final int AUDIO_BUFFER_SAMPLEREAD_SIZE = AUDIO_SAMPLE_FREQ  / 10 * 2; // = 200ms

  private short[] mAudioBuffer = null; // audio buffer
  private int mSamplesRead; // how many samples are recently read
  private AudioRecord mAudioRecorder; // Audio Recorder

  ... …
Run Code Online (Sandbox Code Playgroud)

audio android callback recording android-audiorecord

21
推荐指数
3
解决办法
1万
查看次数

Android:在容器的中心显示自定义对话框

如何将自定义对话框显示为容器的中心?

Dialog customdialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar); 
Window window = customdialog.getWindow();
window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
window.setGravity(Gravity.CENTER);
Run Code Online (Sandbox Code Playgroud)

R.style.Theme_Translucent_NoTitleBar - 用于删除cutomdialog的边框.一旦我使用此行,对话框将出现在平板电脑的顶部角落?

任何人都可以帮我解决这个问题吗?

android android-dialog

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

<AudioRecord>"无法获取记录源1的音频输入"

我在初始化AudioRecordAndroid时遇到了这个问题.我在网上搜索了一段时间没有成功.

对于手机,我在SDK版本7上使用三星GalaxyS.对于AudioRecord初始化,我使用8000作为采样率,MONO用于通道配置,16位用于音频格式,并根据日志,minBufferSize设置是4160.我已将清单的AUDIO_RECORD权限添加到了清单中.

我的初始化代码如下:

...
private static int SAMPLE_RATE = 8000;
private static int CHANNEL_CONFIG = AudioFormat.CHANNEL_CONFIGURATION_MONO;
private static int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
// ??? Both 8Bit and Default are deemed illegal.

public MicVolumeManager() {
    this.bufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE,
        CHANNEL_CONFIG, AUDIO_FORMAT);
    PhoneDebugger.debug("AUDIO-BUFFER-SIZE", 
        Integer.toString(this.bufferSize));

    this.recorder = new AudioRecord(AudioSource.MIC, SAMPLE_RATE,
        CHANNEL_CONFIG, AUDIO_FORMAT, this.bufferSize);

    this.audioBuffer = new byte[this.bufferSize];
}
...
Run Code Online (Sandbox Code Playgroud)

但是,对象(this.recorder)无法初始化.以下是使用DDMS的日志:

AUDIO-BUFFER-SIZE(3253): 4160
AudioRecord(3253): set():sampleRate 8000,channels 16,frameCount 2080
AudioPolicyManager(2175): getInput()inputSource 1,samplingRate 8000,format 1,channels 10,acoustics 0
AudioFlinger (2175): openInput()openInputStream返回输入0x0,SamplingRate 8000,格式1,通道10,声学0,状态-17
AudioRecord(3253):无法获取记录源1的音频输入 …

android audio-recording android-sdk-2.1 android-audiorecord

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

Android AudioRecord - 第二次不会初始化

Hej,我目前正试图让AudioRecord工作.因为我需要一个更大的项目.但它似乎搞得很多.我一直在尝试很多东西,所以当我追踪这个bug时我回到了基础.我正在使用我的三星Galaxy S作为我的调试设备.

我的问题是,第一次重启我的设备后,我可以初始化我创建的AudioRecord对象没有问题.但是第二次运行它时,它不会初始化AudioRecord对象.我已经尝试了几个频率,fyi.

这是我的代码:

package android.audiorecordtest;

import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class AudioRecordTest extends Activity {

    int frequency;
    AudioRecord audRec;
    TextView txtVw;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        txtVw = (TextView) findViewById(R.id.txtVw);


        frequency=8000;
        int bufferSize=(AudioRecord.getMinBufferSize(frequency, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT))*2;
        if (bufferSize>0) {
            audRec = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
                int status = audRec.getState();
        if (status == …
Run Code Online (Sandbox Code Playgroud)

audio android alsa sample-rate android-audiorecord

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

测量片段中的视图

我需要知道ImageView的宽度和高度.有没有办法在片段中测量它?在标准Activity中我使用:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    image.getWidth();
    image.getHeight();
}
Run Code Online (Sandbox Code Playgroud)

但是我可以在哪里使用image.getWidth();image.getHeight();片段?

android android-lifecycle android-fragments

13
推荐指数
1
解决办法
9223
查看次数

如何获得对话框大小?

我正在寻找一种方法来获得自定义对话框的大小.我经历了这个问题,但是给出的唯一答案是没用的,因为如果我尝试mDialog.getWindow().getAttributes().height;它只返回-2,这是WRAP_CONTENT我设置为对话的属性的常量.我怎样才能得到它的大小.我想知道背景图像的siye.

java android dialog android-dialog

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