想知道android framework中声音文件是怎么弄的? 我想知道的是这个sound是在哪儿被调用的~~~~~~在哪儿可以看到sound的列表~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以看下framework下面的媒体播放的例子,1.5版本可以用mContext.getResources().openRawResourceFd(com.android.internal.R.raw.test)这种方式来获取文件路径;然后调用mediamo播放,路径可以自己设置的 放到res资源下面或者SD卡等等整个系统的声音文件最后会放到system/media/audio...下面。 hello kiss你想替换什么系统声音呢?闹钟?警报?还是要加入声音的调用,? 路径都是在代码里写死的如: mSoundPlayer[SOUND_SHUTTER] = newMediaPlayer("/system/media/audio/ui/camera_click.ogg",AudioSystem::ENFORCED_AUDIBLE); mSoundPlayer[SOUND_RECORDING] = newMediaPlayer("/system/media/audio/ui/VideoRecord.ogg",AudioSystem::ENFORCED_AUDIBLE); 应该都在system/media/audio下了吧 你要替换啥 就替换啥呗~ 程序如何使用,就是mediaProvider啊这个目录,android会扫描的,然后存在数据库中,直接取就可以了。 在frameworks/base/data/sounds里面有这样一个文件/OriginalAudio.mkLOCAL_PATH:= frameworks/base/data/soundsPRODUCT_COPY_FILES += \ $(LOCAL_PATH)/F1_MissedCall.ogg:system/media/audio/notifications/F1_MissedCall.ogg \ $(LOCAL_PATH)/F1_New_MMS.ogg:system/media/audio/notifications/F1_New_MMS.ogg \ $(LOCAL_PATH)/F1_New_SMS.ogg:system/media/audio/notifications/F1_New_SMS.ogg \ $(LOCAL_PATH)/Alarm_Buzzer.ogg:system/media/audio/alarms/Alarm_Buzzer.ogg \ $(LOCAL_PATH)/Alarm_Beep_01.ogg:system/media/audio/alarms/Alarm_Beep_01.ogg \ $(LOCAL_PATH)/Alarm_Beep_02.ogg:system/media/audio/alarms/Alarm_Beep_02.ogg \ $(LOCAL_PATH)/Alarm_Classic.ogg:system/media/audio/alarms/Alarm_Classic.ogg \ $(LOCAL_PATH)/Alarm_Beep_03.ogg:system/media/audio/alarms/Alarm_Beep_03.ogg \ $(LOCAL_PATH)/Alarm_Rooster_02.ogg:system/media/audio/alarms/Alarm_Rooster_02.ogg \ $(LOCAL_PATH)/Ring_Classic_02.ogg:system/media/audio/ringtones/Ring_Classic_02.ogg \ $(LOCAL_PATH)/Ring_Digital_02.ogg:system/media/audio/ringtones/Ring_Digital_02.ogg \ $(LOCAL_PATH)/Ring_Synth_04.ogg:system/media/audio/ringtones/Ring_Synth_04.ogg \ $(LOCAL_PATH)/Ring_Synth_02.ogg:system/media/audio/ringtones/Ring_Synth_02.ogg \ $(LOCAL_PATH)/newwavelabs/BeatPlucker.ogg:system/media/audio/ringtones/BeatPlucker.ogg \ $(LOCAL_PATH)/newwavelabs/BentleyDubs.ogg:system/media/audio/ringtones/BentleyDubs.ogg \ $(LOCAL_PATH)/newwavelabs/BirdLoop.ogg:system/media/audio/ringtones/BirdLoop.ogg \ $(LOCAL_PATH)/newwavelabs/CaribbeanIce.ogg:system/media/audio/ringtones/CaribbeanIce.ogg \ $(LOCAL_PATH)/newwavelabs/CurveBall.ogg:system/media/audio/ringtones/CurveBall.ogg \ $(LOCAL_PATH)/newwavelabs/EtherShake.ogg:system/media/audio/ringtones/EtherShake.ogg \ $(LOCAL_PATH)/newwavelabs/FriendlyGhost.ogg:system/media/audio/ringtones/FriendlyGhost.ogg \ $(LOCAL_PATH)/newwavelabs/GameOverGuitar.ogg:system/media/audio/ringtones/GameOverGuitar.ogg \ $(LOCAL_PATH)/newwavelabs/Growl.ogg:system/media/audio/ringtones/Growl.ogg \通过这样的东西好像把声音文件可以copy到out/target/product/.../system/media/audio下面:可是我还是不明白:把local_path里面的声音的拷贝过程是在哪里实现的呢?运用的是那一段程序呢?另外如果我要替换原来的声音的话 是在local_path下替换声音呢 还是跑到system/media/audio下替换呢?很迷茫,求解~~~ PRODUCT_COPY_FILES这个宏说明的就是要拷贝的文件,从源到目的,这里是增加了一些东西。你可以在这里删除和增加。删除好办,增加的方法:是在makefile所在的目录里,增加一个ogg文件(要英文的文件名),再添加一个项目到这个PRODUCT_COPY_FILES下就行了 app 自动关闭,求解 C8650下无法更改运行权限 AppWidget监听媒体扫描事件 如何修改二进制文件中的一段? android工程中只能有一个strings文件吗 关于android工程中nfc的功能问题 安卓问题 android 分享 Android出安全大漏洞了! 安卓端怎样连接远程SQLServer数据库? android布局问题 x86平台下跑android,是否能实现usb slave功能?让它通过usb和PC交互?
1.5版本可以用
mContext.getResources().openRawResourceFd(com.android.internal.R.raw.test)这种方式来获取文件路径;
然后调用mediamo播放,路径可以自己设置的 放到res资源下面或者SD卡等等整个系统的声音文件最后会放到system/media/audio...下面。
闹钟?
警报?
还是要加入声音的调用,?
如:
mSoundPlayer[SOUND_SHUTTER] = newMediaPlayer("/system/media/audio/ui/camera_click.ogg",AudioSystem::ENFORCED_AUDIBLE);
mSoundPlayer[SOUND_RECORDING] = newMediaPlayer("/system/media/audio/ui/VideoRecord.ogg",AudioSystem::ENFORCED_AUDIBLE);
这个目录,android会扫描的,然后存在数据库中,直接取就可以了。
里面有这样一个文件/OriginalAudio.mk
LOCAL_PATH:= frameworks/base/data/soundsPRODUCT_COPY_FILES += \
$(LOCAL_PATH)/F1_MissedCall.ogg:system/media/audio/notifications/F1_MissedCall.ogg \
$(LOCAL_PATH)/F1_New_MMS.ogg:system/media/audio/notifications/F1_New_MMS.ogg \
$(LOCAL_PATH)/F1_New_SMS.ogg:system/media/audio/notifications/F1_New_SMS.ogg \
$(LOCAL_PATH)/Alarm_Buzzer.ogg:system/media/audio/alarms/Alarm_Buzzer.ogg \
$(LOCAL_PATH)/Alarm_Beep_01.ogg:system/media/audio/alarms/Alarm_Beep_01.ogg \
$(LOCAL_PATH)/Alarm_Beep_02.ogg:system/media/audio/alarms/Alarm_Beep_02.ogg \
$(LOCAL_PATH)/Alarm_Classic.ogg:system/media/audio/alarms/Alarm_Classic.ogg \
$(LOCAL_PATH)/Alarm_Beep_03.ogg:system/media/audio/alarms/Alarm_Beep_03.ogg \
$(LOCAL_PATH)/Alarm_Rooster_02.ogg:system/media/audio/alarms/Alarm_Rooster_02.ogg \
$(LOCAL_PATH)/Ring_Classic_02.ogg:system/media/audio/ringtones/Ring_Classic_02.ogg \
$(LOCAL_PATH)/Ring_Digital_02.ogg:system/media/audio/ringtones/Ring_Digital_02.ogg \
$(LOCAL_PATH)/Ring_Synth_04.ogg:system/media/audio/ringtones/Ring_Synth_04.ogg \
$(LOCAL_PATH)/Ring_Synth_02.ogg:system/media/audio/ringtones/Ring_Synth_02.ogg \
$(LOCAL_PATH)/newwavelabs/BeatPlucker.ogg:system/media/audio/ringtones/BeatPlucker.ogg \
$(LOCAL_PATH)/newwavelabs/BentleyDubs.ogg:system/media/audio/ringtones/BentleyDubs.ogg \
$(LOCAL_PATH)/newwavelabs/BirdLoop.ogg:system/media/audio/ringtones/BirdLoop.ogg \
$(LOCAL_PATH)/newwavelabs/CaribbeanIce.ogg:system/media/audio/ringtones/CaribbeanIce.ogg \
$(LOCAL_PATH)/newwavelabs/CurveBall.ogg:system/media/audio/ringtones/CurveBall.ogg \
$(LOCAL_PATH)/newwavelabs/EtherShake.ogg:system/media/audio/ringtones/EtherShake.ogg \
$(LOCAL_PATH)/newwavelabs/FriendlyGhost.ogg:system/media/audio/ringtones/FriendlyGhost.ogg \
$(LOCAL_PATH)/newwavelabs/GameOverGuitar.ogg:system/media/audio/ringtones/GameOverGuitar.ogg \
$(LOCAL_PATH)/newwavelabs/Growl.ogg:system/media/audio/ringtones/Growl.ogg \
通过这样的东西好像把声音文件可以copy到out/target/product/.../system/media/audio下面:
可是我还是不明白:把local_path里面的声音的拷贝过程是在哪里实现的呢?运用的是那一段程序呢?另外如果我要替换原来的声音的话 是在local_path下替换声音呢 还是跑到system/media/audio下替换呢?很迷茫,求解~~~
你可以在这里删除和增加。删除好办,增加的方法:
是在makefile所在的目录里,增加一个ogg文件(要英文的文件名),再添加一个项目到这个PRODUCT_COPY_FILES下就行了