質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

0回答

2189閲覧

androidstudio(Kotlin)でのAudioRecordによる音圧の色表示

oto.

総合スコア10

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2019/04/14 10:07

編集2022/01/12 10:55

前提・実現したいこと

現在、androidstudioにてAudioRecordで音を録り、音の大きさに応じて
アプリ画面全体の色をリアルタイムに変えるというアプリを作りたいと思っています。
言語はKotlinを想定していましたが、情報を集めきれず、Javaに路線変更いたしました。

色は五段階程度を想定しております。

「録音」と表示されたボタンを押す

録音を開始し、ボタンの表示が「停止」になる

「停止」と表示されたボタンを押すと、録音は停止し、ファイル名「sample.3gp」にて音声が保存される。
というプログラムをJavaにて(見よう見まねで)作成しました。
しかし、「音量のログを表示する」「そのログを用いて画面を変化させる」という作業が
どのように記せばよいかわかっておりません…。
具体的にどのような処理をすればログを取得(あるいは表示)することができるのでしょう…。
ご教示いただけないでしょうか。

該当のソースコード

「録音」と表示されたボタンを押す

録音を開始し、ボタンの表示が「停止」になる

「停止」と表示されたボタンを押すと、録音は停止し、ファイル名「sample.3gp」にて音声が保存される。

MainActivity

1 2package com.example.test_recorder0415; 3 4import android.support.v7.app.AppCompatActivity; 5import android.os.Bundle; 6import java.io.IOException; 7import android.app. Activity; 8import android.media.MediaRecorder; 9import android.os.Bundle; 10import android.view.Menu; 11import android.view.View; 12import android.widget. Button; 13 14 15public class MainActivity extends AppCompatActivity { 16 17 private MediaRecorder rec; 18 boolean isRec= false; //G, 中カどうか 19 @Override 20 public void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R. layout.activity_main); 23 // MediaRecorderオブジェクトを準備 24 rec=new MediaRecorder(); 25 } 26// [録音]/. [停止]ボタンがクリックされた時の処理 27 public void onClick(View view) { 28 Button btnRecord = (Button) findViewById(R.id.btnRecord); 29 30//録音停止中の場合 31 32 if (!isRec) { 33 // MediaRecorderオブジェクトの準備 34 rec.setAudioSource(MediaRecorder.AudioSource.MIC); 35 rec.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 36 rec.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 37 rec.setOutputFile("/mnt/sdcard/sample.3gp"); 38 try { 39 rec.prepare(); 40 } catch (IllegalStateException e) { 41 e.printStackTrace(); 42 } catch (IOException e) { 43 e.printStackTrace(); 44 } 45//録音開始 46 47 rec.start(); 48 isRec = true; 49 btnRecord.setText("停止"); 50 51//録音中の場合、録音を停止 52 } else { 53 54 rec.stop(); 55 rec.reset(); 56 isRec = false; 57 btnRecord.setText("録音"); 58 } 59 } 60 @Override 61 protected void onDestroy() { 62 super.onDestroy(); 63 rec.release(); 64 } 65}

activitymain

1<?xml version="1.0" encoding="utf-8"?> 2<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context=".MainActivity"> 8 9 <TextView 10 android:layout_width="wrap_content" 11 android:layout_height="wrap_content" 12 android:text="Hello World!" 13 app:layout_constraintBottom_toBottomOf="parent" 14 app:layout_constraintLeft_toLeftOf="parent" 15 app:layout_constraintRight_toRightOf="parent" 16 app:layout_constraintTop_toTopOf="parent" /> 17 18 <Button 19 android:id="@+id/btnRecord" 20 android:layout_width="match_parent" 21 android:layout_height="wrap_content" 22 android:layout_alignParentLeft="true" 23 android:layout_alignParentTop="true" 24 android:onClick="onClick" 25 android:text="録音" /> 26 27 28</android.support.constraint.ConstraintLayout>

試したこと

マニフェストには「マイク」と「SDカード」の利用許可を入れております。
上記のソースコードにて、録音しそれをSDカードに保存することはできたのですが
録音中に(録音している音の)音量を取得するということができておりません。
非常に初歩的な質問で申し訳ありませんが
ご教示いただけましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2019/04/14 15:44

画面全体とは, アプリの画面ということでしょうか. それともホーム画面の背景ということでしょうか.
oto.

2019/04/14 23:45

アプリ画面の色を変更したいと考えております。
jimbe

2019/04/15 02:28

それではまず, helloworldでもいいので, 画面関係のコードを追加してみて頂けますか. そして省略せず回答を編集してご提示ください. そこから改造していくほうが具体的になると思いますので.
oto.

2019/04/15 06:25

丁寧にアドバイスしてくださりありがとうございます。 コードを追加します。
jimbe

2019/04/15 10:13

では, 折角ですので, ボタンを押したら録音を開始, もう一度押したら停止するようにしてみては如何でしょうか. 表示は取りあえずログでよいかと思います.
oto.

2019/04/16 04:03

アドバイスありがとうございます。 「録音」と表示されたボタンを押す ↓ 録音を開始し、ボタンの表示が「停止」になる ↓ 「停止」と表示されたボタンを押すと、録音は停止し、 ファイル名「sample.3gp」にて音声が保存される。 というプログラムをJavaにて(見よう見まねで)作成しました。 しかし、「音量のLOGを表示する」という作業がどのように記せばよいかわかっておりません…。 具体的にどのような処理をすればログ表示することができるのでしょう…。 お忙しいところ恐縮ですが、ご教示いただけますでしょうか。
jimbe

2019/04/16 07:44

ログと言いましたのは Log.v 等による Logcat への出力です. (先の kotlin のコードでは Log.v("AudioRecord", ~) という行がありました. ) Android Studio であれば, 下のほうに logcat というタブがありますので, そちらに出力されます. 実行中のアプリ以外にもシステムが色々出力してきますので, TAG にアプリ固有の区別し易い文字列を指定しておくと, 虫眼鏡の所にその文字列を指定することによりフィルターされます. java で書き直されたとのことですが, MediaRecorder ですと録音中の音圧を得る方法が無いのではないでしょうか. kotlin と同じく AudioRecorder を使用する必要があると思います.
jimbe

2019/04/16 07:56

また, 「マイクで拾った音(圧)によって画面の色が変化する」アプリに音声ファイルとして残す機能が無いのでしたら, ファイルを作成する必要はありません. 現段階では「音をリアルタイムに取れる(確認はlogcat)」ものを作成されれば良いかと思います.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問