精华内容
下载资源
问答
  • 第三方库
    千次阅读
    2021-04-27 07:32:20

    第三方库

    pandas

    sklearn

    数据集

    来自于达观杯

    训练:train.txt

    测试:test.txt

    概述

    TF-IDF 模型提取特征值

    建立逻辑回归模型

    代码

    # _*_ coding:utf- _*_

    # 简单文本分类实现

    import time

    import pandas as pd

    from sklearn.linear_model import LogisticRegression

    from sklearn.feature_extraction.text import CountVectorizer

    print("start......")

    time_start=time.time()

    # ()加载数据 - 利用pandas读取cvs中数据

    df_train = pd.read_csv("D:/train.txt")

    df_test=pd.read_csv("D:/test.txt")

    # [1.1]数据处理 - 根据个人对算据的分析

    # 本次实验 - 删除'article','id'列

    df_train.drop(columns=['article','id'],inplace=True)

    df_test.drop(columns=['article'],inplace=True)

    # ()特征提取

    """

    特征是什么:选取一些“重要元素”标识一个文本

    特征选取:抽取关键特征值(TF-IDF,LDA..),原因:特征太多,构成的特征向量计算机非常难处理(内存空间,时间)

    一个类别如何标识:文本(多个)+特征(多个)=>[二维向量] --- 标识一个类别

    """

    # TF-IDF 模型

    # sklearn 提取文本特征

    # []TfidfVectorizer

    # []CountVectorizer 文本特征提取方法 - 文本中的词语转换为词频矩阵

    # 词频矩阵 - 矩阵元素a[i][j] 表示j词在第i个文本下的词频

    # sklearn - CountVectorizer

    vectorizer=CountVectorizer(ngram_range=(, ), min_df=,max_df=0.9, max_features=)

    vectorizer.fit(df_train['word_seg'])

    #训练和测试的词频向量格式保持一致

    x_train=vectorizer.transform(df_train['word_seg'])

    x_test=vectorizer.transform(df_test['word_seg'])

    y_train = df_train['class']-

    # sklearn - TfidfVectorizer

    # ()分类模型 - 逻辑回归模型

    # modal :LogisticRegression

    lg = LogisticRegression(C=, dual=True,solver='liblinear',multi_class='ovr')

    lg.fit(x_train, y_train)

    # ()预测

    y_test = lg.predict(x_test)

    # ()结果展示

    df_test['class'] = y_test.tolist()

    df_test['class'] = df_test['class'] +

    df_result = df_test.loc[:, ['id', 'class']]

    df_result.to_csv('D:/result.csv', index=False)

    time_end=time.time()

    print("running time={}".format(time_end-time_start))

    print("end......")

    python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...

    Python连接数据库流行用到的第三方库

    Python连接数据库流行用到的第三方库: mysqldb:只支持Python2.x mysqlclient : mysqldb的衍生版本,完全兼容mysqldb,同时支持Python3.x,安装较复 ...

    python学习(十九)常见的第三方库

    原文链接:http://www.limerence2017.com/2017/12/28/python19/#more 介绍几个python中常见的第三方库. Pillow Pillow简称PIL,是 ...

    NO.3_1:自学python之路------番外:第三方库安装、numpy

    引言 Python因为pip的存在,使得第三方库的发布和获取都比较方便.并且Python对跨平台的支持,使得其相较于C++,Java更加方便使用.在本文中,将会介绍在Windows中安装第三方库的方法 ...

    python 技巧 之 pyCharm快速添加第三方库和插件

    学习python有几个月,安装第三方库都是通过 pip install 或者 easy_install.每次都要打开命令行感觉太麻烦.还好Pycharm提供了安装第三方库和安装插件的功能. 首先打开P ...

    Python学习(六)模块 —— 第三方库

    Python 第三方库 安装第三方库 在Python中,安装第三方库包,是通过setuptools这个工具完成的.Python有两个封装了setuptools的包管理工具:easy_install和p ...

    Python pip包管理器安装第三方库超时解决方案

    一.国内镜像安装 使用方法:pip install --index 镜像网站 第三方库名 二.镜像网站 http://pypi.douban.com/simple/ 豆瓣 http://mirrors ...

    记录解决python在spark运行加载第三方库的问题

    一般写python的我们经常会import一些常用的库,然后有时集群环境上的python没有这些库,怎么办呢? 通过一段时间的摸索发现有二种方式可以解决这个问题: 第一种方法: 下载对应python的 ...

    Python 标准库、第三方库

    Python 标准库.第三方库 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具.这些库可用于文件读写 ...

    随机推荐

    Effective Objective-C 2.0 — 第8条:理解“对象等同性”这一概念

    第8条:理解“对象等同性”这一概念 若想检测对象的等同性,请提供“isEqual”与 hash 方法 相同的对象必须具有相同哈希码,但是两个哈希码相同的对象却未必相同. 不要盲目地逐个检测每条属性,而 ...

    MongoDB - Introduction to MongoDB, Capped Collections

    Overview Capped collections are fixed-size collections that support high-throughput operations that ...

    ububru下 redmine安装教程

    1.安装之前确认你已经安装好了mysql 2.连接mysql创建数据库 mysql -u root –p CREATE DATABASE redmine CHARACTER SET utf8; CRE ...

    Mac HomeBrew 常用命令

    mac 系统常用的软件安装工具就是 homebrew, 其最常用的命令如下: 安装(需要 Ruby):ruby -e "$(curl -fsSL https://raw.github.com ...

    关于搭建MyBatis框架(二)

    由于在[关于使用Mybatis的使用说明(一)http://www.cnblogs.com/zdb292034/p/8675766.html]中存在不太完善地方,通过此片文档进行修订: 阅读指南:(1 ...

    pytest-allure-poco之allure全量详细用法

    allure简介 Allure Framework是一个灵活的轻量级多语言测试报告工具.貌似是目前最漂亮的一个报告工具 python版本及必要库或工具 python 3.7 pytest 4.3.1 ...

    基于CentOS7系统部署cobbler批量安装系统(week3_day5_part1)-技术流ken

    前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 系统环境准备及其下载cobbler ...

    Perl的die和warn函数

    die和warn die可以在出现错误的时候停止程序,并给出消息.默认会输出出错的程序名称和出错行号 warn函数和die函数类似,但和die的区别是不会终止程序 die和warn的参数末尾如果给了\ ...

    int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型

    使用 Nullable 我们可以为原本不可能为 null 的值类型像引用类型那样提供一个 null 值.不过注意:Nullable 本身也是个 struct,是个值 ...

    更多相关内容
  • 但是VScode对于python第三方库(特别是通过pip安装的第三方库)在智能感知提示方面,老是找不到库文件。 经过一番全网搜索,发现都无法彻底解决问题。最终在快要崩溃时发现是VScode自动安装的Pylance插件惹的祸,...

    VS Code python设置第三方包的智能感知      

             因为使用Pyside6框架写Python程序,而QT自己的Qt Creator 在使用方面确实不如VScode轻便,故而使用VScode写Pyside6程序。但是VScode对于python第三方库(特别是通过pip安装的第三方库)在智能感知提示方面,老是找不到库文件。

            经过一番全网搜索,发现都无法彻底解决问题。最终在快要崩溃时发现是VScode自动安装的Pylance插件惹的祸,之前听说过这个货N多毛病,今天算是见识了。

            但是呢,Pylance毕竟是微软全力支持的python产品。心有不甘,最后在不懈的努力下,终于找到真正的问题所在。原来就是微软自己的系统路径带有特殊字符惹的祸。卸载重新安装python后完美解决Pylance不能智能感知提示的问题。

    VScode 对 python 第三方库自动补全、智能提示的通用设置

     

     我的VScode Settings.json配置文件(我剔除了多余的其他配置项):

    {
        "editor.fontSize": 22,
        "editor.formatOnPaste": true,
        "editor.formatOnSave": true,
        "window.zoomLevel": 0,
        "python.autoComplete.extraPaths": [
            
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/python39.zip",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/DLLs",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/lib",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39",
            "C:/Users/Administrator.SC-202011032309/AppData/Roaming/Python/Python39/site-packages",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/lib/site-packages",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/Scripts",
        ],
        "python.analysis.extraPaths": [
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/python39.zip",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/DLLs",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/lib",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39",
            "C:/Users/Administrator.SC-202011032309/AppData/Roaming/Python/Python39/site-packages",
            "C:/Users/Administrator.SC-202011032309/AppData/Local/Programs/Python/Python39/lib/site-packages"
        ],
    }

     通过这样配置,其实重启VScode后,第三方库的智能感知就能正常使用了。

            这也是全网的标准设置方法,可是呢,大多数给的教程到此就结束了。很多朋友按照这个方法设置后,往往还是无法正常智能感知提示。最根本的原因是VScode自动安装了一个微软自己开发的Python插件:Pylance。就是Pylance插件阻碍了智能感知提示功能。

    这是Pylance的资料:

    微软宣布推出一种新的 Python 语言服务器,名为 Pylance,其可利用语言服务器协议与 VS Code 进行通信。Pylance 这个名字是对 Monty Python 的 Lancelot 的致敬,Lancelot 是亚瑟王和圆桌骑士中的第一位勇士。

    Visual Studio Python 语言服务器和 Python 程序经理 Savannah Ostrowski 表示,Pylance 现在作为 Visual Studio Marketplace 的扩展提供,它“极大地改善了 Visual Studio Code 中的 Python 体验。“

            其实Pylance还是挺好的,虽然很多朋友说它很慢。但,现在因为它阻碍了第三方库的智能提示,我必须把它给干掉。直接把Pylance卸载了或是禁用,重启后,第三方库的智能感知就可以正常使用了。     

    不想卸载,通过配置Pylance来使第三方库智能感知提示生效

    【重要】:

    一、通过分析发现并不是Pylance的问题。而是python安装时使用了windows系统默认安装路径。因为windows路径包含特殊字符,所以Pylance无法正确解析库路径。

    二、网上有一篇文章通过设置项把VScode for python的默认服务器更换成其他语言服务器,这样的操作和禁用、卸载没什么区别。

    三、正确的使用方法应该是,重新安装python,在安装python时选择手动模式。把python的安装路径改成自定义。在文件路径里尽量不要有汉字或是特殊标点符号。而后按照上面的设置就完美解决了Pylance无法解析第三方库的问题。

    四、想使用VScode写python,还是老老实实使用Pylance,毕竟它是微软大力支持的产品。

    最后我的VScode配置文件settings.json变成了这样:

    {
        "editor.fontSize": 22,
        "editor.formatOnPaste": true,
        "editor.formatOnSave": true,
        "window.zoomLevel": 0,
        // 默认Python语言服务器使用:Pylance
        "python.languageServer": "Pylance",
        "python.autoComplete.extraPaths": [
            "D:/Python/python39.zip",
            "D:/Python/DLLs",
            "D:/Python/lib",
            "D:/Python",
            "D:/Python/lib/site-packages",
            "D:/Python/Scripts",
        ],
        "python.analysis.extraPaths": [
            "D:/Python/python39.zip",
            "D:/Python/DLLs",
            "D:/Python/lib",
            "D:/Python",
            "D:/Python/lib/site-packages",
            "D:/Python/Scripts",
        ],
    }

    在使用Pylance语言服务器下正常感知提示:


    【OVER】

      

    展开全文
  • python安装第三方库方法1、引言2、pip手动安装2.1 在线安装2.1.1 pip install2.1.2 指定版本安装2.2 离线安装2.3 设置国内源2.4 卸载与升级2.4.1 卸载2.4.2 升级3、pip.main自动安装3.1 pip main 安装3.2 os安装4、...

    1、引言

    续上一篇《Python3:我低调的只用一行代码,就导入Python所有库!》,小鱼发现,别说,还真有不少懒人~ ~

    不知道是不是都跟小鱼一样,把剩下的时间来学(撩)习(妹)。

    为了体现小鱼在上的造就,小鱼今天再分享一个骚操作:
    Python自动安装第三方库,彻底解放双手!
    在这里插入图片描述

    2、pip手动安装

    说道Python安装第三方库,我们第一反应,必须pip方式安装,没毛病,必须的。
    但是想想,如果你换电脑了(土豪才换电脑,我都换朋友),Python第三方库那么多,你难道要一次一次的敲击pip install??

    难道你还是小学生,还需要练习敲键盘??

    在这里插入图片描述

    不过,按照流程,我们还是要先介绍一下pip的手动安装方式,然后再介绍今天的角:自动安装第三方库,

    2.1 在线安装

    2.1.1 默认安装

    老生常谈了,直接一句命令:

    pip install  第三方库名称
    

    2.1.2 指定版本安装

    指定第三方库的版本安装命令:

    pip install  第三方库名称==版本号
    

    例如

    pip install  selenium==3.3
    

    指定版本号的几种方式:

    • ①不指定的情况下,默认安装最新的
    • ②== 指定具体版本号
    • ③<= 指定最高版本号
    • ④>= 指定最低版本号
    • ⑤< 不高于某版本号
    • ⑥> 不低于某版本号

    注意
    这里提示一下,如果不指定具体的版本号,则需要用引号(’ '),如下:

    pip install  'selenium>3.3'
    

    2.2 离线安装

    很多python库在线安装会超时,或者没有网络的情况下,这个时候,就会想到离线安装。

    毕竟上班摸鱼是不对的;
    占用公司网络下载安装包也是不对的。

    这里推荐两个非常非常全的第三方库地址,别客气,直接拿走:

    小屌丝:鱼哥,离线安装,总共分几步?
    小鱼:总共分三步,请跟我一起数:

    • 第一步:登录Python第三方库网站
    • 第二步:把第三库的文件,下载到本地
    • 第三步:通过本地安装

    命令

    pip install C:\Project\pyRXP-2.2.0-cp35-cp35m-win_amd64.whl
    

    2.3 设置国内源

    小屌丝:鱼哥,有没有一个不用下载到本地,还能嗷嗷快安装的方式
    小鱼:这必须的有,上车,看命令。

    如果不想下载到本地,还想直接pip安装,那国内源镜像考虑一下。

    命令

    pip install plotly -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    国内源地址,如下:

    阿里云镜像http://mirrors.aliyun.com/pypi/simple/
    清华大学镜像https://pypi.tuna.tsinghua.edu.cn/simple/
    豆瓣镜像http://pypi.doubanio.com/simple/
    中科大镜像https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/

    小屌丝:鱼哥,这方法好是好,但是我不想每次都输入地址,能不能搞一个一劳永逸的方法,
    小鱼:…你的要求可真高,不过方法可以有。

    就在你的当前项目下,创建一个pip.ini文件,直接调用这个文件内容就OK了:

    在这里插入图片描述

    2.4 卸载与升级

    2.4.1 卸载

    有安装,就有卸载,
    也是很简单,一句命令

    pip uninstall 第三方库名称
    

    2.4.2 升级

    在升级之前,我们需要先查看,如下:
    1、查看命令

    查看已安装的库

    pip list
    

    查看指定的库

    pip show 库名称
    

    2、升级命令

    ①查看可升级的库

    pip list -o
    

    升级命令

    pip install --upgrade 库名称
    

    3、pip.main自动安装

    3.1 pip main 安装

    千呼万唤始出来,犹抱琵琶不遮面!
    前面做了那么多铺垫,主角出场,可以鼓掌,不要停的那种!
    在这里插入图片描述
    我们都经历过,接着别人的代码(拒绝背锅侠),继续前行,但是,有些库我们却没有安装,
    这个时候,就很痛苦,不停地提示没有库,不停地安装,
    想想就苦逼。
    小屌丝:那么有没有一种办法,一步搞定??
    小鱼:必须的,上车,放代码。

    代码展示

    # -*- coding:utf-8 -*-
    # @Time   : 2021-08-03
    # @Author : carl_DJ
    
    """如果引用的库未安装,则自动安装""" 
    #为了明确异常信息,我们追加断言
    try:
        import requests
        import pandas as pd
        from bs4 import BeautifulSoup
        import jieba
        import jieba.analyse
        import matplotlib.pyplot as plt
        from wordcloud import WordCloud,STOPWORDS
        import numpy as np
        from PIL import Image
    # 使用pip.main()方法进行依赖库的安装(例举几个常用的库)   
    except  ImportError:
        import pip
        pip.main(["install", "--user", "requests","beautifulsoup4","matplotlib","wordcloud","pandas","pillow"])
        import requests
        import pandas as pd
        from bs4 import BeautifulSoup
        import jieba
        import jieba.analyse
        import matplotlib.pyplot as plt
        from wordcloud import WordCloud,STOPWORDS
        import numpy as np    
        from PIL import Image 
    

    执行这段代码,剩下的就是等(liao)待(mei)。

    因为小鱼都已经安装完,所以就不执行了。

    3.2 os安装

    小屌丝:看到这里,我觉得我牛叉了…
    小鱼:这才哪到哪,我用一行代码,自动安装。
    小屌丝:我屮艸芔茻…

    代码展示

    # -*- coding:utf-8 -*-
    # @Time   : 2021-08-03
    # @Author : carl_DJ
    
    import os
    
    #需要安装的库
    libs = ["requests","beautifulsoup4","matplotlib","wordcloud","pandas","pillow"]
    
    #循环遍历安装
    for lib in libs:
        os.system("pip install " + lib)
    

    小屌丝:唉我去~~ 鱼哥,牛了牛了!!!
    小鱼:我就想叉腰一会…

    4、总结

    看到这里,又要到总结的时间了,
    我们看看今天分享的内容都有啥:

    • pip在线安装
    • pip离线安装
    • 国内源镜像安装
    • 卸载与升级
    • Python自动安装

    想想,回过来品一品,也就那么回事。
    不管用什么方法安装,只要能只能安装上就行。
    就好比小鱼的这篇博文《Python3:我低调的只用一行代码,就导入Python所有库!》,不管怎么导入第三方库,只要能使用就行。
    所以,我们选择的方法,适合自己的就是最好的。

    展开全文
  • Android Studio引入JNI第三方库

    千次阅读 2022-01-07 14:31:56
    Android Studio引入JNI第三方库前言创建应用导入第三方配置导入头文件和实现文件配置CPU运行环境CMakeLists.txt配置FMOD的使用初始化和释放C++宏的创建头文件的编写native-lib.cpp执行文件的编写 前言 JNI作为Java与...

    前言

    JNI作为Java与native沟通的桥梁,项目开发中难免要使用到;而我们除了自己开发JNI之外,有时候还要在Android Studio引入别人开源的C++第三方库,并在jni层实现第三方库的调用。

    记录一下第一次引入第三方库的步骤和一些需要注意的地方。

    这里使用的第三方库是FMOD,一个操作音频的开放平台,点击跳转官网地址~

    官方API使用方法戳:API官网地址

    具体操作可以通过下载exe文件来操作各种音频配置,设置不同的声音属性,比如要设置一个声音的变化可以设置它的Pitch、Overlap等属性,会让声音发生各种变化,比如正常声音变化小黄人的声音等操作,如图:
    在这里插入图片描述
    安装了客户端之后可以直接通过上拉和下拉鼠标来实现设置这些值的操作,通过第三方库可以使用代码来设置这些参数,直接上代码。

    创建应用

    既然要使用到JNI模块,就不能直接创建新引用,而且创建应用的时候需要注意以下几点:

    • 项目目录不能存在空格或者特殊符号,不然会报错,导致CMakeLists.txt文件无法编译成功。
    • 不能直接创建空的Activity项目,要创建Native C++项目,如图:
      在这里插入图片描述

    创建完成后会得到一个目录如下的工程:
    在这里插入图片描述

    • cpp 存放native层代码的模块
    • java java层代码模块

    主要区别就是之前创建的空的Activity项目多了一个cpp模块,所有与native交互的操作,以及操作完成了反馈给java层的操作都在这里完成。

    导入第三方配置

    将第三方库的相关资源复制到项目里面去。

    导入头文件和实现文件

    将第三方库下载下来之后可以得到一个这种样子的文件夹fmodstudioapi11009android找到api下面的lowlevel就是android平台的相关资源:

    • examples 例子
    • inc 头文件
    • lib 执行文件(so文件)

    在这里插入图片描述
    将inc复制到cpp文件夹下:
    在这里插入图片描述
    这就完成了头文件的导入,光导入头文件是无法实现功能的,因为头文件只是做函数的声明,所以还要导入实现文件,so文件。

    将so文件导入到jniLibs文件夹下:
    在这里插入图片描述
    头文件和实现文件的导入就完成了。

    最后还要导入以下jar包资源,先将jar包复制到libs文件夹下,再导入。
    在这里插入图片描述

    implementation files('libs\\fmod.jar')
    

    配置CPU运行环境

    如果不配置CPU运行环境是会默认支持五个平台的,自然而然所需要的内容就会变大,所以要对CPU的运行环境进行配置。

    首先配置Cmake本地库的CPU运行环境,在build.gradle文件的defaultConfig进行配置:

    externalNativeBuild {
        cmake {
           // cppFlags "" // 默认五大平台
           abiFilters "armeabi-v7a"
        }
    }
    

    同时还要配置ndk的cpu环境:

    // 指定CPU架构,打入APK lib/CPU平台
    ndk {
        abiFilters "armeabi-v7a"
    }
    

    CMakeLists.txt配置

    导入了资源要将资源配置到CMakeLists.txt文件才能进行使用。

    导入头文件:

    include_directories("inc")
    

    批量导入.c .h .cpp文件:

    #批量查询到.c .h .cpp文件
    file(GLOB allCpp *.c *.h *.cpp *.hpp)
    
    add_library( # Sets the name of the library.
            qq_sounddemo
    
            # Sets the library as a shared library.
            SHARED
    
            # Provides a relative path to your source file(s).
            ${allCpp})//将这些文件导入到qq_sounddemo里面去
    

    设置库文件路径,就是要链接到的so文件路径:

    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/../jniLibs/${CMAKE_ANDROID_ARCH_ABI}")
    

    链接具体的库到qq_sounddemo.so里面去,不然使用会报错:找不到对应的库:

    target_link_libraries( # Specifies the target library.
            qq_sounddemo
    
            # Links the target library to the log library
            # included in the NDK.
            ${log-lib}
            fmod
            fmodL
            )
    

    以上工作就是对第三方库的导入和配置。

    FMOD的使用

    具体使用方法可以查看上面的官方API文档,这里只做简单的记录。

    初始化和释放

    FMOD.init()初始化:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
        //初始化FMOD
        FMOD.init(this)
    }
    

    close关闭:

    override fun onDestroy() {
        super.onDestroy()
        //释放资源
        FMOD.close()
    }
    

    C++宏的创建

    居然是要处理不同模式下的声音,所以要定义几个声音常量,而这些常量在C++的表现就是宏,定义如下:

    private val MODE_NORMAL = 0 //正常
    private val MODE_LOLITA = 1 //萝莉
    private val MODE_UNCLE = 2 //大叔
    private val MODE_THRILLER = 3 //惊悚
    private val MODE_FUNNY = 4 //搞怪
    private val MODE_ETHEREAL = 5 //空灵
    

    宏的创建可以直接使用javah的命令进行创建,但是此命令只适用于.class文件,不使用于.kt文件;先进入到项目的java文件:
    在这里插入图片描述
    然后输入以下命令:

    javah 包名.文件名
    

    在这里插入图片描述

    TestActivity定义的常量是这样的:

    public class TestActivity extends AppCompatActivity {
    
        public static final int MODE_NORMAL = 0;//正常
        public static final int MODE_LOLITA = 1;//萝莉
        public static final int MODE_UNCLE = 2;//大叔
        public static final int MODE_THRILLER = 3;//惊悚
        public static final int MODE_FUNNY = 4;//搞怪
        public static final int MODE_ETHEREAL = 5;//空灵
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }
    }
    

    使用该命令后就会自动生成一个.h文件,如下:
    在这里插入图片描述
    打开就可以看到自动帮我们定义好的宏了:
    在这里插入图片描述
    但是这个方法只适用于.class文件,如果是kt文件执行命令会出现找不到文件的错误;所以如果是kotlin开发,那么宏只能自己慢慢写。

    头文件的编写

    头文件存在的目的是为了方便执行文件的使用,部分函数或者变量的声明放到头文件里面,执行文件就可以直接调用。

    这里的头文件需要将第三方库的头文件,以及部分执行文件开发过程中要使用到的系统头文件都导入进来:

    #include <jni.h>
    #include <unistd.h>
    #include <string>//系统头文件
    
    #include "fmod.hpp"//第三方库头文件
    

    下面是手写的宏的定义,因为是kotlin开发,所以只能手写了:

    #ifndef QQ_SOUNDDEMO_COM_YANGCHOI_QQ_SOUNDDEMO_MAINACTIVITY_H
    #define QQ_SOUNDDEMO_COM_YANGCHOI_QQ_SOUNDDEMO_MAINACTIVITY_H
    #ifdef __cplusplus
    extern "C"{
    
        //定义宏
    
    #endif
    #undef demo_MainActivity_MODE_NORMAL
    #define demo_MainActivity_MODE_NORMAL 0L
    
    #undef demo_MainActivity_MODE_LOLITA
    #define demo_MainActivity_MODE_LOLITA 1L
    
    #undef demo_MainActivity_MODE_UNCLE
    #define demo_MainActivity_MODE_UNCLE 2L
    
    #undef demo_MainActivity_MODE_THRILLER
    #define demo_MainActivity_MODE_THRILLER 3L
    
    #undef demo_MainActivity_MODE_FUNNY
    #define demo_MainActivity_MODE_FUNNY 4L
    
    #undef demo_MainActivity_MODE_ETHEREAL
    #define demo_MainActivity_MODE_ETHEREAL 5L
    
    
    };
    
    #endif //QQ_SOUNDDEMO_COM_YANGCHOI_QQ_SOUNDDEMO_MAINACTIVITY_H
    

    native-lib.cpp执行文件的编写

    在编写执行文件之前,需要先java层定义一个可供交互的方法,在java层调用此方法跳转到native-lib.cpp执行相关操作,定义如下:

    private external fun voiceChangeNative(mode: Int, path: String)
    

    JNI方法的定义,kotlin的关键字是external,java的关键字是native;接下来是编写头文件。

    执行文件实现逻辑操作,首先要导入编写好的头文件:

    #include "demo_MainActivity.h"
    

    然后导入第三方库的命名空间:

    using namespace FMOD;//导入FMOD命名空间
    

    具体实现代码是照着api来写的,就不做解释直接贴了,如下:

    extern "C"
    JNIEXPORT void JNICALL
    Java_com_yangchoi_qq_1sounddemo_MainActivity_voiceChangeNative(JNIEnv *env, jobject thiz, jint mode,
                                                                   jstring path) {
    
        //播放完毕的文字
        char *playOverStr = "播放完毕";
        //获取音频路径
        const char * path_ = env->GetStringUTFChars(path,NULL);
    
        System * system = 0; // fmod 音效引擎系统
        Sound * sound = 0;   // fmod 声音
        Channel * channel = 0; // 通道 音轨
        DSP * dsp = 0; // digital signal process  == 数字信号处理
    
        System_Create(&system); // 创建系统
        system->init(32, FMOD_INIT_NORMAL, 0);//系统初始化
        system->createSound(path_, FMOD_DEFAULT, 0, &sound);//创建声音
        system->playSound(sound, 0, false, &channel);//播放声音
    
        switch (mode) {
            case com_yanghcoi_qq_sounddemo_MainActivity_MODE_NORMAL:
                playOverStr = "原生:播放完毕";
                break;
            case com_yanghcoi_qq_sounddemo_MainActivity_MODE_LOLITA:
                playOverStr = "萝莉:播放完毕";
                system->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp);
                dsp->setParameterFloat(FMOD_DSP_PITCHSHIFT_PITCH, 2.0f);
                channel->addDSP(0, dsp);
                break;
    
            case com_yanghcoi_qq_sounddemo_MainActivity_MODE_UNCLE:
                playOverStr = "大叔:播放完毕";
                system->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp);
                dsp->setParameterFloat(FMOD_DSP_PITCHSHIFT_PITCH, 0.7f);
                channel->addDSP(0, dsp);
                break;
    
            case com_yanghcoi_qq_sounddemo_MainActivity_MODE_THRILLER:
                playOverStr = "搞怪 小黄人:播放完毕";
                float frequency;
                channel->getFrequency(&frequency);
                channel->setFrequency(frequency * 1.5f);
                break;
    
            case com_yanghcoi_qq_sounddemo_MainActivity_MODE_FUNNY:
                playOverStr = "惊悚音:播放完毕";
                system->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp);
                dsp->setParameterFloat(FMOD_DSP_PITCHSHIFT_PITCH, 0.7f);
                channel->addDSP(0, dsp);
                system->createDSPByType(FMOD_DSP_TYPE_ECHO, &dsp);
                dsp->setParameterFloat(FMOD_DSP_ECHO_DELAY, 400); // 延时的回音
                dsp->setParameterFloat(FMOD_DSP_ECHO_FEEDBACK, 40); // 默认:50  0完全衰减了
                channel->addDSP(1, dsp);
                system->createDSPByType(FMOD_DSP_TYPE_TREMOLO, &dsp);
                dsp->setParameterFloat(FMOD_DSP_TREMOLO_FREQUENCY, 0.8f);
                dsp->setParameterFloat(FMOD_DSP_TREMOLO_SKEW, 0.8f);
                channel->addDSP(2, dsp);
                break;
    
            case com_yanghcoi_qq_sounddemo_MainActivity_MODE_ETHEREAL:
                playOverStr = "空灵:播放完毕";
                system->createDSPByType(FMOD_DSP_TYPE_ECHO, &dsp);
                dsp->setParameterFloat(FMOD_DSP_ECHO_DELAY, 200); // 延时的回音
                dsp->setParameterFloat(FMOD_DSP_ECHO_FEEDBACK, 10); // 默认:50  0完全衰减了
                channel->addDSP(0, dsp);
                break;
        }
    
        // 死循环
        bool isPalyer = true;
        while (isPalyer) {
            channel->isPlaying(&isPalyer);
            usleep(1000 * 1000); // 每隔一秒
        }
    
        sound->release();
        system->close();
        system->release();
        env->ReleaseStringUTFChars(path, path_);
    }
    

    头文件编写完成之后就可以在java层进行调用了,直接传入对应的参数和音频播放路径就可以,如下:

    voiceChangeNative(MODE_NORMAL, path)
    voiceChangeNative(MODE_LOLITA, path)
    voiceChangeNative(MODE_UNCLE, path)
    voiceChangeNative(MODE_THRILLER, path)
    voiceChangeNative(MODE_FUNNY, path)
    voiceChangeNative(MODE_ETHEREAL, path)
    

    以上就是Android Studio引入第三方类库的全部内容~

    如果有知道kotin怎么快捷生成宏的,麻烦评论区告知一下~

    展开全文
  • 第 10 章 Python 第三方库使用

    千次阅读 2022-01-22 20:50:58
    第 10 章 Python 第三方库使用1. Python 第三方库的获取和安装1.1 pip 工具安装1.2 自定义安装1.3 文件安装1.4 pip 工具使用2. pyinstaller 库概述3. pyinstaller 库与程序打包4. jieba 库概述5. jieba 库与中文分词...
  • Python 安装第三方库教程

    千次阅读 2020-11-24 11:00:49
    我的电脑:Windows 764位Python IDE软件:PyCharm 2017.2.3Python version:Python 3.5.0目前安装Python第三方库有两种通用的方法:1、使用pip命令工具在线下载你需要的第三方库2、手动下载第三方库,再使用pip命令...
  • python怎么引用第三方库?

    千次阅读 2021-01-14 06:47:02
    Python及第三方库安装教程一、Python安装教程第一步:下载Python安装包第二步:安装第三步:测试第四步:运行二、第三方库安装教程第一步:下载安装包第二步:安装第三步:测试第四步:运行一、Python安装教程第一步...
  • python数据分析方向的第三方库是:1、Numpy;2、Pandas;3、SciPy;4、Matplotlib;5、Scikit-Learn;6、Keras;7、Gensim;8、Scrapy。本教程操作环境:windows7系统、Python3版、Dell G3电脑。Python是数据处理...
  • Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域。下面简单介绍下网络爬虫、自动化、数据分析与可视化、WEB开发、机器学习和其他常用的一些第三方库,如果有你感兴趣的库,不妨去试试它的功能吧。1、网络...
  • android调用第三方库,博客中helloword实例,请去看博客
  • Python安装第三方库的4种方法

    千次阅读 2021-01-14 08:00:15
    Python安装第三方库的4种方法1、使用pip大多数库都可以通过pip安装,安装方法为,在命令行窗口输入:pip install libNamelibName — 为库名某些库通过pip安装不了,可能是因为没有打包上传到pypi中,可以下载安装包...
  • Python如何安装第三方库

    千次阅读 2021-03-22 09:19:34
    Python如何安装第三方库[版权申明] 非商业目的注明出处可自由转载博文地址:https://blog.csdn.net/cdpxc/article/details/108808780出自:cdpxc注:笔者是在D盘直接安装了Anaconda (https://www.anaconda.com/)并非...
  • Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域。下面简单介绍下网络爬虫、自动化、数据分析与可视化、WEB开发、机器学习和其他常用的一些第三方库,如果有你感兴趣的库,不妨去试试它的功能吧。1、网络...
  • Python安装第三方库常用方法 超详细~

    万次阅读 多人点赞 2022-02-11 22:44:35
    在pyhton的学习中,相信大家通常都会碰到第三方库的安装问题,这个问题对于很多初学者而言头疼不已。这里我做一些简单的总结,如何正确高效地安装第三方库,少走弯路(毕竟都是我亲自踩过的坑,所以特地来总结一下,...
  • 如何下载安装Python第三方库(注:此文章以Windows的安装环境为前提)一、利用Python中的pip进行第三方库的下载首先我们要搞清楚Python中的pip是个什么东东?pip是一个安装和管理 Python包的工具,可以对python的包...
  • python安装第三方库的方法

    千次阅读 2021-02-04 13:38:56
    python安装第三方库的方法发布时间:2020-09-03 11:22:15来源:亿速云阅读:76作者:小新小编给大家分享一下python安装第三方库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读...
  • 你有没有遇到过这样的怪事:“pip安装第三方库,但PyCharm中却无法识别的?”如果有,也许你需要看这篇文章,看完你就会知道pip按照的库在哪里;为什么安装后,PyCharm导入不了;以及PyCharm安装第三方库的方法解析...
  • PyInstaller是一个十分有用的第三方库,它能够在Windows、Linux、MacOSX等操作系统下将Python源文件打包(或生成.exe文件),通过对源文件打包,Python程序可以在没有安装Python的环境中运行,也可以作为一个独立文件...
  • Python在线和离线安装第三方库的方法Windows环境:(1)离线安装首先在线搜索并下载你需要的第三方库:网址https://pypi.org/project/安装whl包:pip install **.whl(前提是要安装好pip和wheel)安装tar.gz包:cd到解压...
  • python第三方库安装在哪

    千次阅读 2021-01-15 00:33:35
    /usr/lib/python2.7/site-packages/ 从 easy_install 和 pip 安装的第三方库安装路径是:/usr/local/lib/python2.7/site-packages/ 3、非root用户,从 easy_install 和 pip安装第三方库的安装路径是~/.local/lib/...
  • cmake引入第三方库

    千次阅读 2022-03-24 11:12:04
    cmake引入第三方库 第三方库包含.lib文件和.h/.hpp文件动态库还包含.dll文件 小例程 ​ 3rdparty ​ ├─bin ​ │ test.dll ​ ├─include ​ │ test.hpp ​ └─lib ​ ├─Debug ​ │ test.lib ​ └─...
  • pip 安装第三方库报错最全解决方案

    千次阅读 2022-03-28 10:43:04
    我们在使用 Python 开发的时候,通常会用到一些好用的第三方库,推荐用 pip 来安装,比如安装 pandas python -m pip install pandas 一般情况下都没有什么问题,但是有些小伙伴会碰到 pip 安装第三方库报错、pip ...
  • 【工具篇】python pip安装第三方库

    千次阅读 2021-02-04 18:47:38
    python安装第三方库其实挺简单的, 一句话总结:pip install 库名 (如pip install jieba 安装结巴库)但会有一些安装的细节, 本文将详细展开如何pip安装第三方库的详细细节1.在命令行下安装第三方库(以jieba库为例)...
  • python下载安装第三方库

    千次阅读 2022-04-04 11:37:30
    1. 第三方库whl可在https://www.lfd.uci.edu/~gohlke/pythonlibs/找到。 Ctrl+F查找想要的库 2.找到对应版本号的下载下来,放到文件夹A 3.打开文件夹A,shift+右键打开命令行 4. pip install ...........
  • 在很多情况下,我们需要运行Python程序的计算机不能联网,这样就无法使用pip在线安装第三方库,只能采用离线方式安装。 一、下载离线包 根据需要下载的第三方库编写requirements.txt文件。如果需要全部迁移本机的...
  • Python的第三方库pillow

    千次阅读 2022-04-13 13:07:49
    Python的第三方库pillow在Pypi上的地址:https://pypi.org/project/Pillow/ ​ Pillow是Python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是Python官方图像处理库。Image类是...
  • Mac Python第三方库安装

    千次阅读 2020-03-13 15:00:36
    例如要安装:requests 一、使用PyCharm自带的package管理工具进行安装: Preferences->Project->Project Interpreter,点击左下角的“+” 直接搜索requests,安装 (2)终端输入:$ ...
  • Python离线安装第三方库

    千次阅读 2020-12-12 14:17:58
    请看方式二 方式二 源码安装 Python第三方库几乎都可以在github或者 pypi上找到源码。源码包格式大概有zip 、 tar.zip、 tar.bz2。解压这些包,进入解压好的文件夹,通常会有一个setup.py的文件。打开命令行,进入该...
  • 关于Python第三方库安装失败问题的解决方案相信很多刚开始入门Python的菜鸟们在安装python第三方库的时候,多多少少都会遇到一些安装失败的问题。下面,我将结合自身经验,分享一下在windows操作系统上此类问题的...
  • 在Anaconda中安装第三方库

    千次阅读 2022-03-18 15:57:13
    1.首先在系统界面中找到Anaconda并点击... 点击Environments,以opencv为例,在搜索栏中输入opencv进行搜索,找到对应的,最后进行应用,即可完成。在Jupyter中输入import cv2,如无报错就表示安装完成。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 736,613
精华内容 294,645
关键字:

第三方库

友情链接: One_Page_Site.zip