美文网首页
Android裁剪之audio(音频)裁剪

Android裁剪之audio(音频)裁剪

作者: 锄禾豆 | 来源:发表于2022-01-29 08:48 被阅读0次

    源码

    7.1
    

    问题:
    1.系统编译过程对应的/system/media/audio资源来自?

    例如:
    build/target/product/full_base.mk
    
    $(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk)
    
    也就是说,资源文件来自于frameworks/base/data/sounds,采用的是PRODUCT_COPY_FILES方式拷贝。
    如果我们不想要某些资源,则直接修改mk中的项即可
    

    2.系统启动后,怎么关联三方调用?

    1)MediaProvider作为中介,供三方调用
    packages\providers\MediaProvider
    
    MediaScannerReceiver --- 通过监听系统广播,自启
    
    MediaScannerService --- 启动并扫描对应的文件。例如system/media/audio里面的数据
    注:
    调用android.media.MediaScanner
    
    
    MediaScannerService.ServiceHandler
    directories = new String[] {
            Environment.getRootDirectory() + "/media",
            Environment.getOemDirectory() + "/media",
    };//这里涉及system/media业务
    
    
    也就是,三方想要调用/system/media/audio里面的资源,都是调用MediaProvider。例如Settings调用android.media.RingtonManager
    
    
    2)音频资源的默认值怎么来?
    android.media.MediaScanner
    
    private static final String DEFAULT_RINGTONE_PROPERTY_PREFIX = "ro.config.";
    private void setDefaultRingtoneFileNames() {
        mDefaultRingtoneFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
                + Settings.System.RINGTONE);
        mDefaultNotificationFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
                + Settings.System.NOTIFICATION_SOUND);
        mDefaultAlarmAlertFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
                + Settings.System.ALARM_ALERT);
    }
    即
    ro.config.ringtone
    ro.config.notification_sound
    ro.config.alarm_alert
    

    相关文章

      网友评论

          本文标题:Android裁剪之audio(音频)裁剪

          本文链接:https://www.haomeiwen.com/subject/ftpthrtx.html