宿主软件就是专业的音乐制作软件,我们日常听到的大多数正规音乐作品都是用宿主软件制作出来的,这些软件一般需要安装各类插件,插件神嫌就像寄生虫需要在宿主软件里加载才可以工作。
宿主软件有很多,Cubase、FLStudio、StudioOne、ProTools、Logic、AbletonLive、者或SONAR、Nuendo、Audition、Samplitude等等。
插件主要分虚拟乐器插件和音频处理插件两类,虚拟乐器插件是用来编曲的,如钢琴、吉他、鼓、贝斯、古筝、二胡、口琴,等等只要能想象到的乐器都有,音频处理插件是处理波形文件的,比如混响、游嫌手压缩、均衡、等等都是为声音添加效果的。
扩展资料
宿主软件区别
1、运行环境分微软的windows *** 作系统、苹果电脑的MAC系统,还有可以运行在苹果手机或者平板电脑上的宿主,甚至还有ANDROID系统的宿主软件。
2、有的宿主适合编曲,有的适合录音混音,有的适合做现场,有的基本上全能。
参考资料:乐玩音乐人-宿主软件
DexClassLoader可以加载jar/apk/dex,可以从SD卡中加载未安装的apkPathClassLoader只能加载系统中已经安装过的apk
至于具体源码区别:建议读一下DVM源码。本篇不再赘述,之后专门写一篇博客讲述DexClassLoader和PathClassLoader的区别。
**
加载外部APK
**
其实这个场景是这样的:
从服务器下载APK,保存在我们的手机储存卡内
读取APK文件,然后生成对应的DexClassLoader
通过DexClassLoader的loadClass方法读取插件APK dex中的任何一个类。
说干就干,首先我们创建一孝悉个项目MyPluginProject,在这个项目中创建一个Java类:TestModel
/**
* author: liumengqiang
* Date : 2019/7/27
* Description :
*/
public class TestModel {
private String name
public void setName(String name) {
this.name = name
}
public String getName() {
return name
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
然后打包此项目生成:app-debug.apk。
由于插件APK基本都是从服务器下载,为了模拟这个场景,我们需要在宿主项目中新建一个assets文件,将插件APK复制进去,然后在复制到宿主APP的data/data/files文件夹下。
注意:这里之前钻牛角尖了,就是为什么我不直接手动将插件APK直接复制到data/data/files,文件夹下呢? 说干就干,但是问题来了,我在文件管理器的当前Android/data/<包名>下找不到此包名,也就是说没有生成包路径。 说实话卡了很长时间,我一直以为是不是版本问题,最后求助朋友,折腾了一番,最终手动调用:getExternalCacheDir即可解决。生成路径是生成了,那么接下来就是复制APK了吧,当我复制到里面之后,我带袜发现,尼玛,死活获取不到复制进去的插件APK,真的是活见鬼,最后猛然发现那个包路径是系统路径!!!这个需要系蠢慎激统签名权限才能有权限访问! 而我们代码中assets中的APK是复制到内存中。。。
然后在我们的宿主项目中,新建assets,然后将app-debug.apk复制进去。接下来就是将app-debug.apk加载到内存中。
/**
* 把Assets里面得文件复制到 /data/data/files 目录下
*
* @param context
* @param sourceName
*/
public static void extractAssets(Context context, String sourceName) {
AssetManager am = context.getAssets()
InputStream is = null
FileOutputStream fos = null
try {
is = am.open(sourceName)
File extractFile = context.getFileStreamPath(sourceName)
fos = new FileOutputStream(extractFile)
byte[] buffer = new byte[1024]
int count = 0
while ((count = is.read(buffer)) >0) {
fos.write(buffer, 0, count)
}
fos.flush()
} catch (IOException e) {
e.printStackTrace()
} finally {
closeSilently(is)
closeSilently(fos)
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
打开水果,按下F10,左侧切换到FILE,右侧中部找到VST Plugins Extra Search Folder下的手野扮目录,以后安装任何插件都脊并安装到此目毕灶录(如果该目录为C分区,强烈推荐手工指定到系统分区以外分区(比如:E:\VSTPlugins\),因为随着安装插件的数量的增加,这个目录的空间可能会超出你的想像,因此要选择尽量大的分区来安装插件。对于已经安装的插件,更换了目录后可以直接将那些文件复制到新目录,vst插件其实就是一些可调用的 DLL文件及其附属文件。希望对您有帮助!欢迎分享,转载请注明来源:内存溢出
评论列表(0条)