如何让音频延续到下一个幻灯片
787
2022-05-30
文章目录
一、GitHub 地址
二、Oboe C++ 代码
三、日志封装
四、Activity 代码
五、AndroidManifest.xml 配置文件
六、CMakeLists.txt 构建脚本
七、应用 build.gradle 构建脚本
八、工程 build.gradle 构建脚本
九、Gradle 配置脚本 gradle-wrapper.properties
十、配置总结
Oboe GitHub 主页 : GitHub/Oboe
① 简单使用 : Getting Started
② Oboe 全指南 : Full Guide To Oboe
③ Oboe API 参考 : API reference
④ Android 音频框架发展 : Android audio history
在 【Android 高性能音频】Oboe 开发流程 ( 导入 Oboe 库 | 使用预构建的二进制库和头文件 | 编译 Oboe 源码 ) 博客中介绍了
如何导入 Oboe 函数库到项目中
, 本博客中在导入 Oboe 函数库的基础上 , 进行
Oboe 播放器功能开发 ;
在 【Android 高性能音频】Oboe 开发流程 ( 包含头 Oboe 头文件 | 创建音频流 | 设置音频流 | 音频流回调类 AudioStreamCallback ) 介绍了如何创建
AudioStreamBuilder
, 以及 创建
AudioStreamCallback
回调 ;
在 【Android 高性能音频】Oboe 开发流程 ( 创建并设置 AudioStreamCallback 对象 | 打开 Oboe 音频流 | 日志封装 logging_macros.h ) 博客中介绍了
设置 AudioStreamCallback 对象 ,
打开 Oboe 音频流 操作 ,
以及 Google 官方提供的日志封装有文件 ;
在 【Android 高性能音频】Oboe 开发流程 ( 检查 Oboe 音频流属性 | 开始播放 | 停止播放 | 关闭 Oboe 音频流 | 重新配置 Oboe 音频流属性 ) 博客中介绍了
如何开始 Oboe 音频流播放
, 以及
播放完毕后的收尾工作 ;
本篇博客中 , 完整的完成一个 Oboe 播放器的播放操作 ; 代码中有详细的注释 ;
一、GitHub 地址
GitHub 地址 : https://github.com/han1202012/OboeDemo
二、Oboe C++ 代码
#include
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
三、日志封装
Google 中提供了一个很好的 log 封装头文件 ,
logging_macros.h
, 很多官方示例中都使用这个头文件 ;
#ifndef __SAMPLE_ANDROID_DEBUG_H__ #define __SAMPLE_ANDROID_DEBUG_H__ #include
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
30
31
四、Activity 代码
package kim.hsl.oboedemo import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) sample_text.text = stringFromJNI() } external fun stringFromJNI(): String companion object { init { System.loadLibrary("native-lib") } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
五、AndroidManifest.xml 配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
六、CMakeLists.txt 构建脚本
cmake_minimum_required(VERSION 3.4.1) add_library( native-lib SHARED native-lib.cpp ) find_package (oboe REQUIRED CONFIG) target_link_libraries( native-lib oboe::oboe log )
1
2
3
4
5
6
7
8
9
10
11
12
13
七、应用 build.gradle 构建脚本
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 29 buildToolsVersion "30.0.2" defaultConfig { applicationId "kim.hsl.oboedemo" minSdkVersion 18 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags "" arguments "-DANDROID_STL=c++_shared" } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2" } } buildFeatures { prefab true } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.constraintlayout:constraintlayout:2.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' implementation 'com.google.oboe:oboe:1.4.3' }
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
八、工程 build.gradle 构建脚本
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.3.71' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:4.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
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
九、Gradle 配置脚本 gradle-wrapper.properties
#Tue Oct 13 10:20:09 CST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip
1
2
3
4
5
6
十、配置总结
配置总结 :
Android Studio 版本 :
4.1
Gradle 版本 :
6.6.1
Gradle 插件版本 :
4.1.0
Android Gradle
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。