android播放视频时在立体声与单声道之间切换无变化原因分析及解决_Android

部分客户客户使用第三方视频播放器,有立体声与单声道之间切换,发现切换后无作用
原因是由于在HAL层默认没有处理上层发的stereo 转mono的命令,所以会没有效果,

可按如下修改,添加相关处理:
1修改AudioMTKHardware.cpp
添加:static String8 keySetStereo2MonoMode = String8("EnableStereoOutput");

2.修改status_t AudioMTKHardware::setParameters(const String8 &keyValuePairs)
在EXIT_SETPARAMETERS:
之前添加:

复制代码 代码如下:

if (param.getInt(keySetStereo2MonoMode, value) == NO_ERROR) {
ALOGD("setParameters(): %s value=%d", keyValuePairs.string(),value);
((AudioMTKStreamManager*)mAudioMTKStreamManager)->ForceSterer2Mono(value);
}

3.修改AudioMTKStreamManager.h
添加public方法定义:

复制代码 代码如下:

status_t ForceSterer2Mono(bool flag);
status_t AudioMTKStreamManager::ForceSterer2Mono(bool flag)
{
// force all stream to standby
ALOGD("ForceSterer2Mono = %d",flag);
if (mStreamOutVector.size()) {
for (size_t i = 0; i < mStreamOutVector.size() ; i++) {
AudioMTKStreamOut *pTempOut = (AudioMTKStreamOut *)mStreamOutVector.valueAt(i);
pTempOut->SetStereoToMonoFlagForce(flag);
}
}
return NO_ERROR;
}

4.修改AudioMTKStreamOut.h
t添加定义:

复制代码 代码如下:

status_t SetStereoToMonoFlagForce(bool flag);
status_t AudioMTKStreamOut::SetStereoToMonoFlagForce(bool flag)
{
ALOGD("SetStereoToMonoFlagForce = %d",flag);
mSteroToMono = flag;
return NO_ERROR;
}

时间: 2016-06-02

android播放视频时在立体声与单声道之间切换无变化原因分析及解决_Android的相关文章

在android中用surfaceview播放视频时,实现未播放的预览效果?

问题描述 在android中用surfaceview播放视频时,实现未播放的预览效果? 在android中用surfaceview播放视频时,如何在surfaceview的出现时就加载视频的第一帧,实现未播放的预览效果? 类似于图的那种效果,谁有什么解决方法吗? 解决方案 http://download.csdn.net/detail/ohbxiaoxin/8320741 两个控件叠加,至于预览的图片,需要事先从视频中提取出来.

Android DragVideo实现播放视频时任意拖拽的方法_Android

Android DragVideo实现播放视频时任意拖拽 DragVideo A Method to Drag the Video When Playing Video 一种在播放视频时,能够拖拽的方案 为什么有这个工程 经常在爱奇艺网站上看电影,看到如果滑动掩盖了播放窗口后,就后在最下面有一个小播放界面.并且这个播放界面,是可以任意拖拽的.感觉很酷 既然web端能实现,就想了想在移动端设备上,是否也能实现这个效果,于是就有了- 效果图: ------> 实现思路:1.播放视频的view选择Te

Android编程实现播放视频时切换全屏并隐藏状态栏的方法

本文实例讲述了Android编程实现播放视频时切换全屏并隐藏状态栏的方法.分享给大家供大家参考,具体如下: 1. Demo示例: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (this.getResources().getConfiguration().ori

Android DragVideo实现播放视频时任意拖拽的方法

Android DragVideo实现播放视频时任意拖拽 DragVideo A Method to Drag the Video When Playing Video 一种在播放视频时,能够拖拽的方案 为什么有这个工程 经常在爱奇艺网站上看电影,看到如果滑动掩盖了播放窗口后,就后在最下面有一个小播放界面.并且这个播放界面,是可以任意拖拽的.感觉很酷 既然web端能实现,就想了想在移动端设备上,是否也能实现这个效果,于是就有了- 效果图: ------> 实现思路:1.播放视频的view选择Te

android4.4以上系统webview 播放视频时不能全屏问题

问题描述 android4.4以上系统webview 播放视频时不能全屏问题 如题,如何解决android4.4以上系统webview 播放视频时不能全屏问题 解决方案 Android用Webview播放优酷视频全屏问题android webview 播放视频 解决方案二: 是不是浏览器的兼容问题啊

Android播放视频(一)

package cn.c; import java.io.File; import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.media.MediaPlayer.OnErrorListener; import android.media.MediaPlayer.OnInfoListener

Android播放视频的三种方式_Android

在Android中,我们有三种方式来实现视频的播放: 1).使用其自带的播放器.指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型. 2).使用VideoView来播放.在布局文件中使用VideoView结合MediaController来实现对其控制. 3).使用MediaPlayer类和SurfaceView来实现,这种方式很灵活. 1.调用其自带的播放器: Uriuri = Uri.parse(Environment.getExternalStorageD

win2003系统播放视频时画面差没有声音的解决方法

升级win 2003后发现播放视频时画面差,没有声音.本文整理了视频功能优化方面的技巧让win 2003系统更加完美,遇到类似问题的朋友可以参考下 选择系统,第一个选择的是它的稳定性,相对来说win 2003比win xp来得稳定,所以很多用户就选择了升级win 2003,但是升级完后发现播放视频时画面差,没有声音.没关系,今天小编就来教教大家把视频功能优化起来,让win 2003系统更加完美. 由于win 2003特别的设置,会特意屏蔽一些多媒体的功能来定位服务器应用,所以这问题很常见. 1.

WMP播放视频时CPU占用太高怎么办

在win XP系统下,不少用户开启了win Media Player(下称WMP)播放器的视频加速功能,通过此方式,可以为部分老显卡来更好的高清播放效果.当操作系统发展到win 7时,绝大多数用户的硬件环境,已经可以很好的应对高清播放的需求,因此,在win XP中发挥作用的视频加速功能,现在有些过时了. 问题:win7下WMP 12播放视频时,CPU使用率过高. 本文看点:XP时代很好的功能,在win7时代未必依然合适. win 7用户使用WMP 12播放高清视频文件时,时常会发现CPU使用率居