我保存了资源mp3文件,你需要用MediaPlayer播放
资源Resources/Drawable/beep.mp3
中的路径
我尝试这段代码
var fileUri = Uri.Parse("android.resource://MyAppName/" + Resource.Drawable.beep);
_mediaPlayer.SetDataSource(Application.Context,fileUri);
但是文件的路径不正确, 如何获取资源mp3文件的正确路径
答案 0 :(得分:0)
您正在使用" drawable"中的MP3。目录,这是错误的。
使用资产。
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
答案 1 :(得分:0)
我实际上将我的MP3文件存储在Resources / Raw中,并使用SoundPool
代替MediaPlayer
来获取哔声等短片段。请参阅Soundpool or media player?
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.MyView);
// Set the hardware buttons to control the music
this.VolumeControlStream = Stream.Music;
// Load the sound
_soundPool = new SoundPool(10, Stream.Music, 0);
_beepId = _soundPool.Load(this, Resource.Raw.beep, 1);
}
private void PlaySound(int soundId)
{
var audioManager = (AudioManager)GetSystemService(AudioService);
var actualVolume = (float)audioManager.GetStreamVolume(Stream.Music);
var maxVolume = (float)audioManager.GetStreamMaxVolume(Stream.Music);
var volume = actualVolume / maxVolume;
_soundPool.Play(soundId, volume, volume, 1, 0, 1f);
}
然后,您只需拨打PlaySound(_beepId)
即可播放您的声音。