III. Hướng sử dụng V4A FX trên đầu android
Xem các hình ảnh dưới đây về mô tả các sử dụng phần mềm Viber4AndroidFX trên đầu android...
IV. Hướng tích hợp V4A vào rom
[Phần này chỉ dành cho các kỹ thuật viên cook rom, người dùng bình thường không cần quan tâm]
1. Tải file Viber4AndroidFX_VN_signed.apk về dungf 7zip hoặc winrar giải nén ra
2. Copy assets/libv4a_fx/xhifi_xxx.so vào /system/lib/soundfx/
Lưu ý: xxxyscos thể là gb cho android 2.3.x, ics cho 4.0~4.2 hoặc jb for 4.3 tùy theo tên file mà bạn sử dụng.
3. Với android 2.3 chỉ cần làm như trên là xong. Với android 4.x, làm tiếp bước 4.
4. Sửa file audio_effect.conf trong thư mục etc như sau
4.1. Dưới đoạn “libraries {“, thêm:
4.2. Dưới đoạn “effects {“ thêm:
Dưới đây là toàn bộ nội dung file audio_effect.conf của tôi (nội dung này khác nhau tùy từng thiết bị) cùng với các đoạn mã trên đã được thêm vào để các bạn tham khảo: https://drive.google.com/open?id=0BxrXRmcVjBr3VlMxNkhtSTFJTG8
Xem các hình ảnh dưới đây về mô tả các sử dụng phần mềm Viber4AndroidFX trên đầu android...
IV. Hướng tích hợp V4A vào rom
[Phần này chỉ dành cho các kỹ thuật viên cook rom, người dùng bình thường không cần quan tâm]
1. Tải file Viber4AndroidFX_VN_signed.apk về dungf 7zip hoặc winrar giải nén ra
2. Copy assets/libv4a_fx/xhifi_xxx.so vào /system/lib/soundfx/
Lưu ý: xxxyscos thể là gb cho android 2.3.x, ics cho 4.0~4.2 hoặc jb for 4.3 tùy theo tên file mà bạn sử dụng.
3. Với android 2.3 chỉ cần làm như trên là xong. Với android 4.x, làm tiếp bước 4.
4. Sửa file audio_effect.conf trong thư mục etc như sau
4.1. Dưới đoạn “libraries {“, thêm:
Mã:
v4a_fx {
path /system/lib/soundfx/libv4a_fx_xxx.so
}
#NECESSARY FOR XHIFI
v4a_xhifi {
path /system/lib/soundfx/libv4a_xhifi_xxx.so
}
Mã:
v4a_standard_fx {
library v4a_fx
uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
}
#NECESSARY FOR XHIFI
v4a_standard_xhifi {
library v4a_xhifi
uuid d92c3a90-3e26-11e2-a25f-0800200c9a66
}
Dưới đây là toàn bộ nội dung file audio_effect.conf của tôi (nội dung này khác nhau tùy từng thiết bị) cùng với các đoạn mã trên đã được thêm vào để các bạn tham khảo: https://drive.google.com/open?id=0BxrXRmcVjBr3VlMxNkhtSTFJTG8
Mã:
# List of effect libraries to load. Each library element must contain a "path" element
# giving the full path of the library .so file.
# libraries {
# <lib name> {
# path <lib path>
# }
# }
libraries {
v4a_fx {
path /system/lib/soundfx/libv4a_fx_ics.so
}
# This is a proxy library that will be an abstraction for
# the HW and SW effects
proxy {
path /system/lib/soundfx/libeffectproxy.so
}
# This is the SW implementation library of the effect
#libSW {
#path /system/lib/soundfx/libswwrapper.so
#}
# This is the HW implementation library for the effect
#libHW {
#path /system/lib/soundfx/libhwwrapper.so
#}
bundle {
path /system/lib/soundfx/libbundlewrapper.so
}
reverb {
path /system/lib/soundfx/libreverbwrapper.so
}
visualizer {
path /system/lib/soundfx/libvisualizer.so
}
offload_visualizer {
path /system/lib/soundfx/libqcomvisualizer.so
}
pre_processing {
path /system/lib/soundfx/libaudiopreprocessing.so
}
downmix {
path /system/lib/soundfx/libdownmix.so
}
SRS {
path /system/lib/soundfx/libsrsfx.so
}
}
# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
# The value of the "library" element must correspond to the name of one library element in the
# "libraries" element.
# The name of the effect element is indicative, only the value of the "uuid" element
# designates the effect.
# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
# generic effect type UUID.
# effects {
# <fx name> {
# library <lib name>
# uuid <effect uuid>
# }
# ...
# }
effects {
v4a_standard_fx {
library v4a_fx
uuid 41d3c987-e6cf-11e3-a88a-11aba5d5c51b
}
# additions for the proxy implementation
# Proxy implementation
#effectname {
#library proxy
#uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# SW implemetation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libsw {
#library libSW
#uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
#} End of SW effect
# HW implementation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libhw {
#library libHW
#uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
#}End of HW effect
#} End of effect proxy
dynamic_bass_boost {
library SRS
uuid f7a247b0-1a7b-11e0-bb0d-2a30dfd72085
}
srsgeq5 {
library SRS
uuid f7a247c2-1a7b-11e0-bb0d-2a30dfd72085
}
wowhd {
library SRS
uuid f7a247d2-1a7b-11e0-bb0d-2a30dfd72085
}
virtualizer {
library bundle
uuid 1d4033c0-8557-11df-9f2d-0002a5d5c51b
}
volume {
library bundle
uuid 119341a0-8469-11df-81f9-0002a5d5c51b
}
reverb_env_aux {
library reverb
uuid 4a387fc0-8ab3-11df-8bad-0002a5d5c51b
}
reverb_env_ins {
library reverb
uuid c7a511a0-a3bb-11df-860e-0002a5d5c51b
}
reverb_pre_aux {
library reverb
uuid f29a1400-a3bb-11df-8ddc-0002a5d5c51b
}
reverb_pre_ins {
library reverb
uuid 172cdf00-a3bc-11df-a72f-0002a5d5c51b
}
visualizer {
library proxy
uuid af8da7e8-2ca1-11e3-b71d-0002a5d5c51b
libsw {
library visualizer
uuid d069d9e0-8329-11df-9168-0002a5d5c51b
}
libhw {
library offload_visualizer
uuid 7a8044a0-1a71-11e3-a184-0002a5d5c51b
}
}
downmix {
library downmix
uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
}
agc {
library pre_processing
uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
}
aec {
library pre_processing
uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
}
ns {
library pre_processing
uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
}
}
# Audio preprocessor configurations.
# The pre processor configuration consists in a list of elements each describing
# pre processor settings for a given input source. Valid input source names are:
# "mic", "camcorder", "voice_recognition", "voice_communication"
# Each input source element contains a list of effects elements. The name of the effect
# element must be the name of one of the effects in the "effects" list of the file.
# Each effect element may optionally contain a list of parameters and their
# default value to apply when the pre processor effect is created.
# A parameter is defined by a "param" element and a "value" element. Each of these elements
# consists in one or more elements specifying a type followed by a value.
# The types defined are: "int", "short", "float", "bool" and "string"
# When both "param" and "value" are a single int, a simple form is allowed where just
# the param and value pair is present in the parameter description
# pre_processing {
# <input source name> {
# <fx name> {
# <param 1 name> {
# param {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# value {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# }
# <param 2 name > {<param> <value>}
# ...
# }
# ...
# }
# ...
# }
#
# TODO: add default audio pre processor configurations after debug and tuning phase
#