怎么給一整套ppt加背景音樂(如何給做好的ppt加背景音樂)
962
2022-05-30
文章目錄
一、GitHub 地址
二、Oboe C++ 代碼
三、日志封裝
四、Activity 代碼
五、AndroidManifest.xml 配置文件
六、CMakeLists.txt 構(gòu)建腳本
七、應(yīng)用 build.gradle 構(gòu)建腳本
八、工程 build.gradle 構(gòu)建腳本
九、Gradle 配置腳本 gradle-wrapper.properties
十、配置總結(jié)
Oboe GitHub 主頁 : GitHub/Oboe
① 簡單使用 : Getting Started
② Oboe 全指南 : Full Guide To Oboe
③ Oboe API 參考 : API reference
④ Android 音頻框架發(fā)展 : Android audio history
在 【Android 高性能音頻】Oboe 開發(fā)流程 ( 導(dǎo)入 Oboe 庫 | 使用預(yù)構(gòu)建的二進(jìn)制庫和頭文件 | 編譯 Oboe 源碼 ) 博客中介紹了
如何導(dǎo)入 Oboe 函數(shù)庫到項(xiàng)目中
, 本博客中在導(dǎo)入 Oboe 函數(shù)庫的基礎(chǔ)上 , 進(jìn)行
Oboe 播放器功能開發(fā) ;
在 【Android 高性能音頻】Oboe 開發(fā)流程 ( 包含頭 Oboe 頭文件 | 創(chuàng)建音頻流 | 設(shè)置音頻流 | 音頻流回調(diào)類 AudioStreamCallback ) 介紹了如何創(chuàng)建
AudioStreamBuilder
, 以及 創(chuàng)建
AudioStreamCallback
回調(diào) ;
在 【Android 高性能音頻】Oboe 開發(fā)流程 ( 創(chuàng)建并設(shè)置 AudioStreamCallback 對象 | 打開 Oboe 音頻流 | 日志封裝 logging_macros.h ) 博客中介紹了
設(shè)置 AudioStreamCallback 對象 ,
打開 Oboe 音頻流 操作 ,
以及 Google 官方提供的日志封裝有文件 ;
在 【Android 高性能音頻】Oboe 開發(fā)流程 ( 檢查 Oboe 音頻流屬性 | 開始播放 | 停止播放 | 關(guān)閉 Oboe 音頻流 | 重新配置 Oboe 音頻流屬性 ) 博客中介紹了
如何開始 Oboe 音頻流播放
, 以及
播放完畢后的收尾工作 ;
本篇博客中 , 完整的完成一個(gè) Oboe 播放器的播放操作 ; 代碼中有詳細(xì)的注釋 ;
一、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 中提供了一個(gè)很好的 log 封裝頭文件 ,
logging_macros.h
, 很多官方示例中都使用這個(gè)頭文件 ;
#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 構(gòu)建腳本
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
七、應(yīng)用 build.gradle 構(gòu)建腳本
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 構(gòu)建腳本
// 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
十、配置總結(jié)
配置總結(jié) :
Android Studio 版本 :
4.1
Gradle 版本 :
6.6.1
Gradle 插件版本 :
4.1.0
Android Gradle
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。