1

音声を録音するためにアプリケーションを実行していますが、音声を録音しようとすると、SDカードの挿入を求められるためエミュレータが停止します。私がしなければならないこと?SDカードなしではできませんか?

ありがとうございました!

   package proiektua.proiektua;


import java.io.FileDescriptor;

import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;

import android.provider.MediaStore;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;


public class MainActivity extends Activity  {

        int peticion = 1;
        Uri url1;
        private int STATE_CONFIGURE;
        private int mState = STATE_CONFIGURE;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }

        public void grabar(View v) {
            Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
            startActivityForResult(intent, peticion);}

            public void setOutputFile(FileDescriptor fd) {
                    switch (mState) {
                case STATE_RECORD:
                        throw new RuntimeException("setOutputFile cannot be called while recording!");

                    case STATE_RELEASED:
                        throw new RuntimeException("setOutputFile called on an already released recorder!");
                    default:
                        break;
                }
        }

        public void reproducir(View v) {
            MediaPlayer mediaPlayer = MediaPlayer.create(this, url1);
            mediaPlayer.start();
        }

        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode == RESULT_OK && requestCode == peticion) {
                url1 = data.getData();
            }
        }

    }
4

2 に答える 2

1

mksdcardコマンドを使用してSDカードを作成し、それをアミュレーターに関連付けるオプションがあります。

于 2013-03-22T12:19:42.350 に答える
0

この関数を見てください:

public void setOutputFile (FileDescriptor fd)

Added in API level 3
Pass in the file descriptor of the file to be written. Call this after setOutputFormat() but before prepare().

ファイルを保存する場所を決定できます。

この例も見てください。 http://androidfreakers.blogspot.co.il/2011/09/using-mediarecorder.html

于 2013-03-22T12:14:57.947 に答える