5

録音して録音した音を電話のスピーカーに渡したいと思っていましたが、録音コードを機能させることができませんでした (アプリがクラッシュします。ここで私の試行を参照してください) か否か。私は 1 秒の録音を、wav (16 ビット pcm、44k サンプリング周波数、モノラル) と mp3 (両方とも Audacity を介して行われた録音と変換) の両方で SD カードにコピーしました。IDE のファイル エクスプローラーでファイルを確認できるので、SD カードがエミュレーターによって適切に検出されていると思います。しかし、エミュレーターの組み込みの音楽プレーヤーでそれらを検出できませんでした (なぜ ??)。

2 回目の試行として、コードHEREをサンプルの Hello World Android アプリにコピーしました。主な活動内容はこちら

public class MainActivity extends Activity {

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

        // String PATH_TO_FILE = "/sdcard/asMP3.mp3";
        // String PATH_TO_FILE = Environment.getExternalStorageDirectory().getPath()+"/asMP3.mp3";
        String PATH_TO_FILE = Environment.getExternalStorageDirectory().getPath()+"/wavSigned16bitPCM.wav";
        MediaPlayer mp1 = new MediaPlayer();
        try
        {

            mp1.setDataSource(PATH_TO_FILE);
            mp1.prepare();
            mp1.start();
            Toast.makeText(getApplicationContext(), "HERE", Toast.LENGTH_SHORT).show();
        }
        catch (IllegalArgumentException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (IllegalStateException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @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;
    }
}  

アプリが起動するとすぐに音の再生が始まると思いました。Toastが表示されるので、コードが実行されていることがわかります。プログラムはクラッシュしませんが、他にも何も起こりません。この場合も音が出ません (なぜですか?)

3 回目の試行として、コードHEREを使用し、再生したいファイルを追加しましたres\raw。このプログラムもクラッシュしませんが、まだ何も聞こえません。

それで問題は、エミュレーターでオーディオに関連することはまったく可能ですか? THIS QUESTIONを見ると、これは可能であるように見えますが、なぜ私のプログラムでそれが起こっていないのですか? オーディオ出力のマニフェストにもアクセス許可を設定する必要がありますか?

- - 編集 - -

THISも見ましたが-useaudio、エミュレーター-useaudioが不明なオプションであると言っemulator -helpてリストに表示されないオプションを使用すると、開発者の Web サイトでオプションとして明確に表示され、さらに useaudio がデフォルトで有効になっていると表示されます。では、エミュレータがサウンドを再生しないのはなぜですか?

--- 追記 ---
エミュレータをスナップショットで起動した場合、オーディオ機能が動作しないようです。そうでない場合でも、コンピューターによってはオーディオ機能が動作する場合と動作しない場合があります。こちらをご覧ください

4

1 に答える 1