声音录制

2023-12-05

我是 Android 新手,我正在尝试构建一个应用程序来记录音频数据。我正在使用带有 ADT 插件的 Eclipse Galileo IDE。我的应用程序针对的是 Andriod 2.1 平台。

不幸的是example开发指南中提供的抛出许多异常。

例如: 获取代码使用的 MIME 类型recorder.getMimeContentType()。但我的版本中不存在这个方法MediaRecorder class.

我在网上和这个论坛上进行了搜索,并提出了一两个替代方案,展示了如何录制音频并将其放入现有文件中。但理想情况下,我希望开发指南中给出的代码能够工作。

或者如果我可以录制音频并将其直接存储在字节数组中,那就更好了?

我花了很多时间试图让它发挥作用,但没有取得多大成功:(

如果有人可以向我展示如何实现录音,我将非常感激。


它有用于录制音频的示例代码


 b1=(Button)findViewById(R.id.button1);
    b2=(Button) findViewById(R.id.button2);
    mr=new MediaRecorder();
    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            try{
            b1.setEnabled(false);
            b2.setEnabled(true);
            b2.requestFocus();

                start();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });
    b2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            try{
            b1.setEnabled(true);
            b2.setEnabled(false);
            b1.requestFocus();

                stop();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            processaudiofile();


        }
    });

    b2.setEnabled(false);
    b1.setEnabled(true);
 }


  protected  void start() throws Exception
{
   mr.setAudioSource(MediaRecorder.AudioSource.MIC);
   mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
   mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
   if (audiofile == null) {
          File sampleDir = Environment.getExternalStorageDirectory();

          try { 
              audiofile = File.createTempFile("Record", ".mp3", sampleDir);
          } 
          catch (IOException e)
          {
              Log.e("abc","sdcard access error");
              return;
          }
  }

     mr.setOutputFile(audiofile.getAbsolutePath());

   mr.prepare();
    mr.start();


}


 protected void stop() throws Exception{
mr.stop();
mr.release();
}



protected void processaudiofile() {
    ContentValues values = new ContentValues(4);
    long current = System.currentTimeMillis();

    values.put(MediaStore.Audio.Media.TITLE, "audio" + audiofile.getName());
    values.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current / 1000));
    values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/3gpp");
    values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath());
    ContentResolver contentResolver = getContentResolver();

    Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    Uri newUri = contentResolver.insert(base, values);

    // this does not always seem to work cleanly....
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, newUri));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

声音录制 的相关文章

  • 通知无法在 Android Oreo (API 26) 中显示

    当我尝试在 Android O 上显示通知时收到此消息 对于除卷之外的操作 不推荐使用流类型 控制 该通知直接来自示例文档 并且在 Android 25 上显示良好 根据评论这篇 Google 帖子 https plus google co
  • Android Invalidate() 仅限单个视图

    我有 2 条意见RelativeLayout 我需要调用 调用 onDraw 仅单个视图 当我尝试时view1 invalidate 它还调用 call onDraw view2绘制 该怎么办 thanks if view1与重叠view2
  • 当同级滚动到达末尾时打开底部工作表吗?

    有没有办法将滚动事件从一个滚动视图 转发 到我的底部工作表 以便当我过度滚动第一个滚动视图时我的底部工作表开始展开 考虑这个小应用程序 public class MainActivity extends AppCompatActivity
  • Android:发送文件到服务器:PHP 在服务器中接收该文件

    在我的应用程序中 我必须将 csv 文件发送到服务器 我尝试了以下代码 HttpPost httppost new HttpPost url InputStreamEntity reqEntity new InputStreamEntity
  • Glide V4 加载 https 图像

    我知道这个link https stackoverflow com questions 41114569 glide javax net ssl sslhandshakeexception java security cert certpa
  • 有没有办法停止所有媒体播放器?

    我目前正在通过阅读 Android 官方网站上的开发文档来开发我的第一个 Android 应用程序 我想要完成的是播放一些铃声 我的代码的一部分是 import android app Activity import android med
  • 使应用程序背景适合不同设备的最佳方法

    因此 我希望通过一些漂亮的背景图像等来为我的应用程序增添一点趣味 但我很好奇的是如何确保不同的机器人正确渲染 我将在文本后面设置背景 并且我需要确保它们对于每个不同的屏幕尺寸和分辨率具有相同的尺寸和位置 有这方面好的教程吗 Thanks E
  • 阻止 Android WebView 尝试在 loadData() 上加载/捕获 CSS 等资源

    背景 这似乎与许多其他问题重复 相信我 事实并非如此 我正在尝试将 html 数据加载到WebView https developer android com reference android webkit WebView html 能够
  • GCM 服务器以什么频率刷新注册 ID?如何在我的手机中获取 regId 更改事件?

    GCM 服务器刷新注册 ID 的时间频率 如果更改了如何在我的手机中获取 regId 更改事件 我的应用程序在首次启动时在 GCM 上注册 并将 regId Id 存储在 Sahred 首选项文件中 然后 当用户手动完成某些事件时 它将从共
  • Android Multipart HTTP Post 不发送文件的 MIME 类型

    试图找出我的编码有什么问题 我关注了一篇博客文章here http evgenyg wordpress com 2010 05 01 uploading files multipart post apache 我设法获得了将文件实际上传到
  • Android M 运行时权限中的“Never-Asked”和“Stop-Asking”如何区分?

    当谈到 M Developer Preview 运行时权限时 根据Google https plus google com AndroidDevelopers posts 8aaudh5n1zM linkId 16190516 如果您以前从
  • 有问题的 ListView 让我很难过

    我有一个ListView我在单独的 XML 文件中定义了每个项目的布局 在这个文件中我包含了一个RatingBar and an EditText 我已经以编程方式在其中创建了 7 8 个项目ListView 当我滚动浏览它们时 它似乎有很
  • Android 中的 SeekBar 和媒体播放器

    我有一个简单的播放器和录音机 一切都很好 但有一个问题 我想添加搜索栏来查看播放记录的进度 并使用此搜索栏来设置播放器应该播放的位置 我有 onProgress 但没有效果 这是代码 package com example recorder
  • 如果 minsdk 是 14,我应该使用 AppCompat v7

    如果我的应用程序的 minSdk 14 我还应该使用应用程序兼容 v7 吗 Android L 中 ActionBar 有什么优势吗 我应该使用支持 v4 中的 android support v4 app FragmentActivity
  • Android 启动器在启动器中按 Home 键转到默认屏幕

    在默认的 Android 启动器中 在另一个 Activity 中按 Home 键将启动启动器 在启动器中再次按主页将重置为默认主屏幕页面 我不明白这是怎么做到的 无论启动器是否在前台 Android 都会发送相同的意图 Home 键也无法
  • 无法部署到真实的 Android 设备 Xamarin

    我的问题与这篇文章有关即使应用程序似乎未安装 也会失败 INSTALL FAILED UPDATE INCOMPATIBLE https stackoverflow com questions 26794862 failure instal
  • 标记聚类在 Android 中不显示标记?

    我在 Android 的 PagerFragment 中设置了 MapView 我按照 Google 示例进行操作 但使用 V2 API 设置带有群集标记的地图 它向我显示了一张没有标记的黑色地图 我哪里做错了 import android
  • 如何压缩和解压文件?

    如何压缩和解压 DDMS 中已有的文件 data data mypackage files 我需要一个简单的例子 我已经搜索过与 zip 和 unzip 相关的内容 但是 没有一个例子可供我参考 谁能举个例子 提前谢谢 查看 zip 功能的
  • Android 中自定义对话框内的日期选择器

    我想在自定义对话框中使用日期选择器 单击按钮上的日历将打开以供用户选择日期 我的 customDilaog 类中有 Button 在该按钮上单击 我想打开日历视图 如果单击此按钮 我的应用程序将崩溃 我已经完成了这个 CustomDialo
  • 可以以编程方式打开“立即发言”对话框吗?

    是否可以通过编程方式打开 立即发言 对话框 目前 如果用户点击我的 搜索 按钮 则会打开一个对话框 并且我会自动打开软键盘 因此用户无需点击文本编辑字段 我想提供一个替代的 通过语音搜索 它将打开对话框并自动打开 立即发言 窗口 因此用户不

随机推荐

  • 如何本地化 Windows 应用商店应用中的通知和组合框? (C#/XAML,多语言应用程序工具包)

    我在 Windows 应用商店应用程序本地化方面遇到一些问题 我能够本地化 xaml 内容 例如 TextBlock Text 或 Button Content 我正在以与此处所示相同的方式进行操作 但我不知道如何本地化以下内容 1 我的组
  • 我是否使用了太多 jQuery?我什么时候越线?

    最近我发现自己经常使用 jQuery 和 JavaScript 经常做与使用 CSS 之前相同的事情 例如 我使用 JavaScript jQuery 替换表格行颜色或创建按钮和链接悬停效果 这是可以接受的吗 或者我应该继续使用 CSS 来
  • 通过读取kafka的详细信息动态创建flink窗口

    假设 Kafka 消息包含 flink 窗口大小配置 我想读取来自 Kafka 的消息并在 flink 中创建一个全局窗口 问题陈述 我们可以使用 BroadcastStream 来处理上述场景吗 Or 还有其他方法可以支持上述情况吗 Fl
  • 数组交换 - 二维数组

    我正在研究交换二维数组中的索引 我似乎走在正确的轨道上 但它没有按照我想要的方式交换数组 第一行的索引j需要与第 2 行的索引交换j for int j 0 j lt array length j int temp array row1 j
  • HTML 表格导出至 Excel(XLS 或 CSV)

    我正在尝试将 HTML 表格内容导出到 Excel 我看见这个解决方案这有效但没有达到我的预期 因为我无法选择要复制的列 和它不适用于大桌子 还有另一种解决方案是通过js复制并手动粘贴到excel文件 但效果不太好 而且我不太喜欢这种方法
  • 是否存在批量检查区分大小写

    我需要检查给定文件是否存在 区分大小写 out txt 均为小写字母 文件是否存在于我运行脚本的位置 Code Case1 filename out txt if exist filename echo file exist else ec
  • 撤销 OAuth 访问令牌会导致 404 Not Found

    我正在开发一个与 GitHub 集成的应用程序 但在 注销 之前经过身份验证的用户时遇到问题 当我尝试撤销用户的授权令牌时 我从 API 收到 404 Not Found 响应 根据文档 看来我应该能够做一个DELETE请求https ap
  • 按第一行对 numpy 二维数组进行排序,保留列

    在 python 中 我有一个以下形式的 numpy 数组 4 8 2 0 5 3 1 6 8 1 2 2 6 0 3 9 7 6 7 8 5 8 1 1 4 我想按第一行的值从左到右按升序对其进行排序 同时保持整个列完好无损 实际的数组的
  • 无法在 bash 脚本中运行 adb 命令

    我正在尝试从 adb shell 启动 Android 网络共享设置 这样做的主要目的是通过运行 shell 脚本来启用 USB 网络共享模式 我在 Ubuntu 终端 12 04 上使用以下命令集 adb shell am start n
  • Sublime Text 是否有查找打开文件的快捷方式(Eclipse Ctrl + E)?

    Ctrl P of Sublime Text lets me find a file from all project files However there are too many duplicated names I m lookin
  • OpenGL 窗口未打开

    我有来自 OpenGLBook openglbook com 的代码 它可以编译 但无法加载 我完全不知道为什么它没有加载 代码如下 main cpp include main h Methods int main int argc cha
  • C++等待用户输入[重复]

    这个问题在这里已经有答案了 在控制台应用程序中等待用户输入的最佳方法是什么 std cout lt lt press any key to exit wait for user to hit enter or another key 有多种
  • 使用for循环的索引访问变量的名称

    假设我有 4 个字符串 private string string 1 string 2 string 3 string 4 然后假设我有一个 for 循环 如何通过for循环的索引访问变量名 这是我正在谈论的内容的一个想法 for int
  • Oozie 抑制 shell 作业操作的日志记录?

    我有一个运行 shell 脚本的简单工作流程 见下文 shell 脚本运行 pyspark 脚本 该脚本将文件从本地移动到 hdfs 文件夹 当我运行 shell 脚本本身时 它工作得很好 日志在 shell 脚本中通过 gt spark
  • 像关系 SQL 数据库一样使用 JSon (Javascript)

    所以我有一个如下所示的 JSON 变量 var peopleList 1 Name Lisa item1 Name of Item 1 2 Name Marty 3 Name Jordan item1 Name of Item 1 item
  • 如何显示文本视图几秒钟然后使其不可见?

    这个网站是最好的 它对我帮助很大 我是创建 android applecation 的初学者 这是我第一次在这里问问题 我的问题是如何显示一个文本视图5秒并使其消失 当我搜索时我发现了一些代码 但我不知道如何使用它或者也许我使用它以错误的方
  • 输入[类型=文件]验证

    如何检查输入文件是否不为空 我试过 image file click function if image file val alert Chose a file return false 但没有成功 The click事件被触发before
  • Sweave 文档中 R 注释中对图形的动态引用

    我想找到一种使用 LaTeX 的方法 ref 用于在 Sweave Rnw 文件中的 R 代码中进行注释的标记 这里有两个例子 一个是印刷版的 http cm bell labs com cm ms departments sia proj
  • SetLayeredWindowAttributes 使窗口透明仅在部分时间起作用

    我试图使窗口透明 以便只有部分内容可见 我尝试使用SetLayeredWindowAttributes为了实现这一点 这使窗口按照我想要的方式透明 但是只有当窗口图片的一部分位于桌面可见区域之外时 它才有效 由于某种原因 每当窗口完全在屏幕
  • 声音录制

    我是 Android 新手 我正在尝试构建一个应用程序来记录音频数据 我正在使用带有 ADT 插件的 Eclipse Galileo IDE 我的应用程序针对的是 Andriod 2 1 平台 不幸的是example开发指南中提供的抛出许多