android模拟器可以播放音频吗?

use*_*267 5 audio android android-emulator

我想录制并将录制的声音传递给手机的扬声器,但我无法让录音代码正常工作(应用程序崩溃,请在此处查看我的尝试)所以我现在正在尝试查看模拟器是否可以执行与音频相关的任何操作或不.我复制了1秒的录音,包括wav(16位pcm,44k采样频率,单声道)和mp3(通过Audacity完成录制和转换)到sdcard.我可以在IDE的文件浏览器中看到这些文件,所以我想模拟器正在正确检测到SD卡.但我无法让模拟器的内置音乐播放器来检测它们(为什么??).

作为第二次尝试,我将代码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;
    }
}  
Run Code Online (Sandbox Code Playgroud)

我以为这会在应用程序启动后立即开始播放声音.该Toast节目,所以我知道代码执行.程序没有崩溃,但也没有其他事情发生,在这种情况下也没有声音(为什么?)

作为第三次尝试,我在这里使用了代码,并添加了我想要播放的文件res\raw.这个程序也没有崩溃,但我仍然听不到任何声音.

所以问题是,是否可以在模拟器上做任何与音频相关的事情?看看这个问题,看起来这应该是可能的,为什么不在我的程序中发生呢?我是否需要为音频输出设置任何权限?

- - 编辑 - -

我也看过这个,但如果我使用该-useaudio选项,模拟器只是说-useaudio是一个未知的选项,并emulator -help没有列出它,母鸡它在开发人员网站上清楚地显示为一个选项,而且它说默认启用useaudio.那么为什么我的模拟器不能播放任何声音呢?

---更新---
如果使用快照启动模拟器,似乎音频功能不起作用.如果没有,音频功能仍然可能或可能不起作用,具体取决于计算机.请看这里

Kar*_*pal 2

是的,您可以在模拟器上进行音频相关的工作。

你的代码序列应该是 -

mp1 = new MediaPlayer();
mp1.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp1.setDataSource(PATH_TO_FILE);
mp1.prepare();
mp1.start();
Run Code Online (Sandbox Code Playgroud)

并用于在清单文件中设置权限。

使用这些进行记录功能 -

这些用于播放功能 -

Android开发者官方网站上有一篇指南文章

音频捕获指南媒体播放指南

如果它不起作用,请发布您的日志猫屏幕截图。