使用Android4.4新增新媒体功能中的音量增强器LoudnessEnhancer实现仿酷狗音乐一键强音功能

转载请注明:http://blog.csdn.net/u012854870/article/details/58604351
由于自己开发的音乐播放器,安装在公司自己生产的平板上,播放音乐的时候,当媒体音量调到最大的时候声音还是很小,后来产品就拿着酷狗音乐来,让我实现类似酷狗音乐一键增强音量功能,开始并没有思路,几经搜索打算用均衡器实现,可是代码写完后发现并没有达到想要的效果,而且发现不同类型的音乐,均衡器频段设置不同,实现起来比较麻烦,最后只能放弃,寻找新思路最后终于在文档中找到了解决方案Android4.4新增新媒体功能文档新媒体功能部分中介绍到LoudnessEnhancer(LoudnessEnhancer文档)类,发现这就是我想要的功能,算是完美解决了,现将实现代码分享如下:

public class MainActivity extends AppCompatActivity {

    // 定义播放声音的MediaPlayer
    private MediaPlayer mPlayer;
    // 定义音频响度处理类
    private LoudnessEnhancer loudnessEnhancer;
    private LinearLayout layout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置音频流 - STREAM_MUSIC:音乐回放即媒体音量
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        layout = new LinearLayout(this);//代码创建布局
        layout.setOrientation(LinearLayout.VERTICAL);//设置为线性布局-上下排列
        setContentView(layout);//将布局添加到 Activity
        // 创建MediaPlayer对象,并添加音频
        // 音频路径为  res/raw/test.mp3
        mPlayer = MediaPlayer.create(this, R.raw.test);
        // 开发播放音乐
        mPlayer.start();
        addButton();
    }

    private void addButton() {
        Button button = new Button(this);
        button.setText("音效增强");
        layout.addView(button);
        loudnessEnhancer = new LoudnessEnhancer(mPlayer.getAudioSessionId());
        //设置用于音频效果的目标增益
        loudnessEnhancer.setTargetGain(5000);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (loudnessEnhancer.getEnabled()) {
                    loudnessEnhancer.setEnabled(false);
                } else {
                    loudnessEnhancer.setEnabled(true);
                }
            }
        });
    }


    @Override
    protected void onPause() {
        super.onPause();
        if (isFinishing() && mPlayer != null) {
            // 释放所有对象
            loudnessEnhancer.release();
            mPlayer.release();
            mPlayer = null;
        }
    }


}

最后给出源码下载地址:CNDS

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android4.4及以上版本,可以使用WebAPI的方式来实现拍照上传功能。具体步骤如下: 1. 在HTML页面添加一个input标签,设置type属性为file,capture属性为camera,用于调用摄像头拍照。 ```html <input type="file" accept="image/*" capture="camera" id="uploadInput"> ``` 2. 使用JavaScript获取input标签,并监听其change事件,获取拍照的图片文件对象。 ```javascript var uploadInput = document.getElementById('uploadInput'); uploadInput.addEventListener('change', function() { var file = uploadInput.files[0]; // ...将文件上传到服务器 }); ``` 3. 将获取到的图片文件对象转换为Base64编码的字符串,并将其作为图片的src属性显示在页面上。 ```javascript var reader = new FileReader(); reader.onload = function(e) { var imageData = e.target.result; var img = document.createElement('img'); img.src = imageData; document.body.appendChild(img); }; reader.readAsDataURL(file); ``` 4. 将Base64编码的图片数据发送到服务器,可以通过XMLHttpRequest对象发送POST请求,也可以使用jQuery等库进行简化操作。以下是一个示例代码,它可以将Base64编码的图片数据发送到服务器: ```javascript var xhr = new XMLHttpRequest(); xhr.open('POST', '/upload', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { if (xhr.status === 200) { alert('上传成功!'); } else { alert('上传失败!'); } } }; xhr.send('image=' + encodeURIComponent(imageData)); ``` 注意,这段代码的上传路径为`/upload`,需要根据实际情况进行修改。另外,为了提高用户体验,可以在调用摄像头时添加一个拍照的确认界面,让用户可以选择是否确认使用该照片。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值