当前位置: 首页 > 知识库问答 >
问题:

为从资源(原始文件夹)播放的音频文件设置AudioStreamType

仰英发
2023-03-14

[第一个应用程序]我正在创建一种报警应用程序,允许用户从SD卡或应用程序提供的声音选择报警声音。因为,该应用程序本质上播放警报,我希望音量是设备的“警报音量”。我能够为sd卡的声音实现这一点。但是,我无法setAudioStreamType获取原始资源声音。

我使用以下代码:

 MediaPlayer m_player = new MediaPlayer();
 m_player.setAudioStreamType(AudioManager.STREAM_ALARM);
 switch (bin_name) { //bin_name = various user selectable music files
     default:
        m_player = MediaPlayer.create(context, R.raw.blu);
        break;
 }
 m_player.setLooping(true);
 m_player.start();

我还尝试为上述方法查找代码示例,但没有一个示例说明如何将AudioStreamType设置为AudioManager.steam_alarm。我将接受答案与替代的方式,简单地播放与无限循环的声音。如何做到这一点?

共有1个答案

姜经武
2023-03-14

正如您所参考的文档所述,您必须自己创建和准备MediaPlayer。我还没有尝试使用STREAM_ALARM,但我正在使用以下代码片段在STREAM_VOICE_CALL上播放

Uri uri = Uri.parse("android.resource://com.example.app/" + R.raw.hdsweep);
MediaPlayer mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
mMediaPlayer.setDataSource(context, uri);
mMediaPlayer.prepare();
mMediaPlayer.start()
 类似资料:
  • 我尝试从res/raw文件夹播放音频文件,这是我用来播放文件的代码,这不会产生任何错误,并且我的设备音量最大,但没有任何声音。我尝试了MP3和WAV文件。 启动后我在 LogCat 上收到以下消息 帮助我解决这个问题,将不胜感激。

  • 我用一个布局和两个按钮构建了一个简单的应用程序,这是我的代码。。 我的原始文件夹包含:atur.mp3、back.mp3、belajar.mp3、level.mp3、skip.mp3和start.mp3...当我单击按钮静音时,播放back.mp3,但当我单击按钮播放时,原始文件夹中的所有mp3都被播放...有评论吗?

  • 问题内容: 我正在尝试在Android Studio的res \ raw文件中保留一个.txt文件,并读取/解析该文件。我在“ res”目录(未创建)中创建的名为“ raw”的文件夹中有一个文件“ my_file.txt”。 我认为我的主要问题是:创建File对象(与Scanner对象一起使用)时,应该为文本文件传递什么路径? 这是我的代码: 问题答案: 认为您正在寻找符合以下条件的东西 其中ct

  • 我在res目录中创建了raw文件夹,并插入了mp3文件。我试着用mediaplayer播放我的mp3文件。这是我的消息来源- 但是当我运行应用程序时,我有exception.this是我的logcat异常- 我如何解决我的问题?如果有人知道解决办法,请帮助我。提前感谢。

  • 函数名称: 播放音频 函数功能: 在后台播放指定的声音文件 函数方法 media.playAudio(path,vol,flag) 参数 类型 必填 说明 path string 是 音频文件名,支持 mp3、m4a、m4r、ogg、wav vol string 否 音频音量,不写默认,使用当前设置的音量 flag string 否 是否循环播放,不写默认为 false - 不循环,true -

  • 我正在尝试做一个应用程序,共享的孩子是在应用程序的“原始”文件夹,但我没有得到它。该文件是共享的,但没有.mp3扩展名。我无法收听Windows Media Player,但我手动放了一个.mp3扩展名。有没有人知道我是怎么做到的。mp3扩展自动?将URI转换/重命名为mp3文件。 歌曲的名字是在文件中注册的,我相信,如果有可能重命名添加.mp3在最后可能会起作用。但我不能重命名。 我正在使用以下