Android:带有TImer的录音机

Android:带有TImer的录音机,第1张

概述我正在尝试开发app,它记录了音频和音频.播放.我能够录制和播放播放录制的文件.现在我想在录制音频或声音时显示录制时间.搜索谷歌&很多事情都无法理解.任何人都可以说我如何进行下一步.这是我用计时器录音的代码publicclassAudioRecordActivityextendsActivityimplementsO

我正在尝试开发app,它记录了音频和音频.播放.我能够录制和播放播放录制的文件.现在我想在录制音频或声音时显示录制时间.搜索谷歌&很多事情都无法理解.任何人都可以说我如何进行下一步.

这是我用计时器录音的代码

public class AudioRecordActivity extends Activity implements OnClickListener {MediaRecorder recorder = new MediaRecorder();private String filename;private button record;private button play;private button stop;private TextVIEw timedisplay;Chronometer myChronometer;/** Called when the activity is first created. */@OverrIDepublic voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.main);    record = (button) findVIEwByID(R.ID.recordbutton);    record.setonClickListener(this);    play = (button) findVIEwByID(R.ID.playbutton);    play.setonClickListener(this);    stop = (button) findVIEwByID(R.ID.stopbutton);    stop.setonClickListener(this);    myChronometer = (Chronometer) findVIEwByID(R.ID.timer);    record.setonClickListener(new button.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            // Todo auto-generated method stub            myChronometer.start();        }    });    stop.setonClickListener(new button.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            // Todo auto-generated method stub            myChronometer.stop();        }    });}@OverrIDepublic voID onClick(VIEw v) {    switch (v.getID()) {    case R.ID.recordbutton:        try {            stop.setEnabled(true);            record.setEnabled(false);            startRecording();        } catch (IOException e) {            System.out.println(e + "");            e.printstacktrace();        }        break;    case R.ID.stopbutton:        stop.setEnabled(false);        record.setEnabled(true);        stopRecording();        break;    case R.ID.playbutton:        Intent intent = new Intent();        // PLAY ANY AUdio/VIDEO file        intent.setAction(androID.content.Intent.ACTION_VIEW);        file file = new file("/sdcard/" + filename);        intent.setDataAndType(Uri.fromfile(file), "audio/*");        startActivity(intent);        break;    default:        break;    }}voID startRecording() throws IOException {    SimpleDateFormat timeStampformat = new SimpleDateFormat(            "yyyy-MM-dd-HH.mm.ss");    // filename = "audio_" + timeStampformat.format(new Date()) + ".mp4";    filename = "audioTest" + ".mp4";    recorder = new MediaRecorder();    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);    recorder.setoutputFormat(MediaRecorder.OutputFormat.RAW_AMR);    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);    recorder.setoutputfile("/sdcard/" + filename);    recorder.setAudioEnCodingBitRate(320);    recorder.setAudioSamplingRate(16000);    recorder.setAudioChannels(2);    recorder.prepare();    recorder.start();}private voID stopRecording() {    if (null != recorder) {        try {            recorder.stop();            recorder.reset();            recorder.release();            recorder = null;        } catch (NullPointerException e) {            Toast.makeText(getApplicationContext(),                    "Recording not started", Toast.LENGTH_SHORT).show();            e.printstacktrace();        }    }}@OverrIDepublic boolean onKeyDown(int keyCode, KeyEvent event) {    // Todo auto-generated method stub    if (KeyEvent.KEYCODE_BACK == keyCode) {        finish();    }    return super.onKeyDown(keyCode, event);}}

这里我的logcat错误

05-16 16:11:11.603: E/AndroIDRuntime(21256): FATAL EXCEPTION: main05-16 16:11:11.603: E/AndroIDRuntime(21256): java.lang.RuntimeException: Unable to start     activity ComponentInfo{xxx.com/xxx.com.AudioRecordActivity}:    java.lang.classCastException: androID.Widget.TextVIEw cannot be cast to androID.Widget.Chronometer05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1956)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.app.ActivityThread.access0(ActivityThread.java:123)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.os.Handler.dispatchMessage(Handler.java:99)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.os.Looper.loop(Looper.java:137)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.app.ActivityThread.main(ActivityThread.java:4424)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at java.lang.reflect.Method.invokeNative(Native Method)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at java.lang.reflect.Method.invoke(Method.java:511)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:551)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at dalvik.system.NativeStart.main(Native Method)05-16 16:11:11.603: E/AndroIDRuntime(21256): Caused by: java.lang.classCastException: androID.Widget.TextVIEw cannot be cast to androID.Widget.Chronometer05-16 16:11:11.603: E/AndroIDRuntime(21256):    at xxx.com.AudioRecordActivity.onCreate(AudioRecordActivity.java:45)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.app.Activity.performCreate(Activity.java:4465)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)05-16 16:11:11.603: E/AndroIDRuntime(21256):    at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1920)

谢谢…

解决方法:

为此你应该尝试天文台,通过这个你可以实现你的目标好运

天文台的示例代码在这里:

在main.xml中

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"  androID:orIEntation="vertical"  androID:layout_wIDth="fill_parent"  androID:layout_height="fill_parent"  ><TextVIEw  androID:layout_wIDth="fill_parent"  androID:layout_height="wrap_content"  androID:text="@string/hello"  /><Chronometer androID:ID="@+ID/chronometer" androID:layout_gravity="center_horizontal"  androID:layout_wIDth="fill_parent"  androID:layout_height="wrap_content" /><button androID:ID="@+ID/buttonstart"  androID:layout_wIDth="fill_parent"  androID:layout_height="wrap_content"  androID:text="Start" /><button androID:ID="@+ID/buttonstop"  androID:layout_wIDth="fill_parent"  androID:layout_height="wrap_content"  androID:text="Stop" /><button androID:ID="@+ID/buttonreset"  androID:layout_wIDth="fill_parent"  androID:layout_height="wrap_content"  androID:text="reset" /></linearLayout>

在java文件中

package com.exercise.AndroIDChronometer;import androID.app.Activity;import androID.os.Bundle;import androID.os.SystemClock;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.Chronometer;public class AndroIDChronometer extends Activity {   /** Called when the activity is first created. */   @OverrIDe   public voID onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentVIEw(R.layout.main);       final Chronometer myChronometer = (Chronometer)findVIEwByID(R.ID.chronometer);       button buttonStart = (button)findVIEwByID(R.ID.buttonstart);       button buttonStop = (button)findVIEwByID(R.ID.buttonstop);       button buttonreset = (button)findVIEwByID(R.ID.buttonreset);       buttonStart.setonClickListener(new button.OnClickListener(){   @OverrIDe   public voID onClick(VIEw v) {    // Todo auto-generated method stub    myChronometer.start();   }});       buttonStop.setonClickListener(new button.OnClickListener(){   @OverrIDe   public voID onClick(VIEw v) {    // Todo auto-generated method stub    myChronometer.stop();   }});       buttonreset.setonClickListener(new button.OnClickListener(){   @OverrIDe   public voID onClick(VIEw v) {    // Todo auto-generated method stub    myChronometer.setBase(SystemClock.elapsedRealtime());   }});   }}
总结

以上是内存溢出为你收集整理的Android:带有TImer的录音机全部内容,希望文章能够帮你解决Android:带有TImer的录音机所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1114332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存