我想录制并将录制的声音传递给手机的扬声器,但我无法使录制代码正常工作(应用程序崩溃,SEE MY ATTEMPT HERE)所以我现在正试图查看模拟器是否可以执行与音频有关的任何事情。我复制了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;
}
}
我认为这会在应用程序启动后立即开始播放声音。 Toast
出现,所以我知道代码正在执行。程序没有崩溃,但也没有其他事情发生,在这种情况下也没有声音(为什么?)
作为第三次尝试,我使用了代码HERE,并在res\raw
中添加了我想要播放的文件。这个程序也没有崩溃,但我仍然听不到任何声音。
所以问题是,是否有可能在模拟器上做任何与音频相关的事情?看THIS QUESTION它看起来应该是可能的,那么为什么不在我的程序中发生呢?我是否需要为音频输出设置任何权限?
----编辑----
我还看到THIS,但如果我使用-useaudio
选项,模拟器只是说-useaudio
是一个未知选项,emulator -help
没有列出它,母鸡它清楚地显示为开发人员网站中的一个选项,而且它表示默认情况下启用了useaudio。那么为什么我的模拟器不能播放任何声音呢?
---更新---
如果使用快照启动了模拟器,则音频功能似乎不起作用。如果没有,音频功能仍然可能或可能不起作用,具体取决于计算机。请参阅HERE
答案 0 :(得分:2)
是的,您可以在模拟器上进行与音频相关的工作。
您的代码序列应为 -
mp1 = new MediaPlayer();
mp1.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp1.setDataSource(PATH_TO_FILE);
mp1.prepare();
mp1.start();
用于在清单文件中设置权限。
使用这些作为记录功能 -
这些用于播放功能 -
官方Android开发者网站上有一篇指南文章
Guide to audio capture和 Guide to media playback
如果它不起作用,那么发布你的日志猫截图。