我想录制并传递录制的声音到手机扬声器,但我无法让录音代码工作(应用程序崩溃,请看我的尝试),所以现在我正在尝试看看模拟器是否能处理音频。 我将一秒钟的录音(16位pcm,44k采样频率,单声道)分别复制到了sdcard中的wav和mp3格式文件中(录制和转换都是通过Audacity完成的)。 我可以在IDE的文件浏览器中看到这些文件,所以我猜测模拟器已经正确检测到了sdcard。 但是我无法让模拟器内置的音乐播放器检测到它们(为什么??)。
作为第二次尝试,我将代码在此处复制到示例hello world Android应用程序中。 这是主要活动类。
我原以为这个应用程序一启动就会开始播放声音。Toast出现了,所以我知道代码正在执行。程序没有崩溃,但也没有发生其他任何事情,在这种情况下也没有声音(为什么?)
作为第三次尝试,我使用了此处的代码,并将我想要播放的文件添加到
所以问题是,在模拟器上是否有可能做与音频相关的任何事情?看着这个问题,似乎应该是可能的,那么为什么我的程序没有发生这种情况呢?我需要在清单中设置任何音频输出权限吗?
----编辑----
我也看到了这个链接,但是如果我使用
似乎如果使用快照启动模拟器,则音频功能无法正常工作。如果没有使用快照,则音频功能可能会或可能不会根据计算机而异。请参见此处。
作为第二次尝试,我将代码在此处复制到示例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出现了,所以我知道代码正在执行。程序没有崩溃,但也没有发生其他任何事情,在这种情况下也没有声音(为什么?)
作为第三次尝试,我使用了此处的代码,并将我想要播放的文件添加到
res\raw
中,正如它所说的那样。这个程序也没有崩溃,但我仍然听不到任何声音。所以问题是,在模拟器上是否有可能做与音频相关的任何事情?看着这个问题,似乎应该是可能的,那么为什么我的程序没有发生这种情况呢?我需要在清单中设置任何音频输出权限吗?
----编辑----
我也看到了这个链接,但是如果我使用
-useaudio
选项,模拟器会提示-useaudio
是未知选项,并且emulator -help
没有列出它,尽管在开发者网站上清楚地显示了该选项,而且还说默认启用useaudio。那么为什么我的模拟器没有播放任何声音呢?
---更新---似乎如果使用快照启动模拟器,则音频功能无法正常工作。如果没有使用快照,则音频功能可能会或可能不会根据计算机而异。请参见此处。