---
title: 替换 ijkplayer
permalink: /docs/zh/replace-ijkplayer.html
key: docs-replace-ijkplayer
---

fijkplayer 只是对 ijkplayer 的一个 Flutter 封装，ijkplayer 才是真正的播放器内核。
为了将 ijkplayer 接入到 Flutter 的生态中，必须要对 ijkplayer 进行必要的修改， fijkplayer 使用了修改后的 ijkplayer ([https://github.com/befovy/ijkplayer](https://github.com/befovy/ijkplayer)) 进行功能接入。

在实际使用 fijkplayer 的过程中，处于各种原因可能需要重新编译 ijkplayer，或者是 ffmpeg。本节内容就如何在 fijkplayer 中替换自行编译的 ijkplayer 进行说明。注意一下三点：

1. 确保使用的是 https://github.com/befovy/ijkplayer 的衍生版本，其中含有纹理接入的必要修改。
2. 以本地相对路径方式引入 fijkplayer。
3. fijkplayer 以本地路径方式引入 ijkplayer。

本节余下部分使用 ${fijkplayer} 表示 fijkplayer 项目在本地环境的文件路径。

## 以本地路径依赖 fijkplayer 
将项目 https://github.com/befovy/fijkplayer clone 到本地环境，在本地的 Flutter 项目中以相对路径方式引入 fijkplayer 的依赖。
```yaml
dependencies:  
  fijkplayer:
    path: ${local_fijkplayer_path} # 替换为实际的本地路径
```

## 编译 ijkplayer 
将项目 https://github.com/befovy/ijkplayer clone 到本地环境，按照其中 README 准备编译环境，需要准备 ffmpeg openssl 等。

在 android/ijkplayer 目录中运行 `./gradlew :fijkplayer-full:assembleRelease` 可以编译产出 fijkplayer-full-release.aar

在本地 ios/IJKMediaPlayer/ 运行 `xcodebuild -project IJKMediaPlayer.xcodeproj -configuration Release -scheme FIJKPlayer-Universal` 可以编译产出 IJKPlayer.framework ，输出在 `ios/CocoaPodsPub` 文件夹中。

## 修改 ijkplayer 依赖方式

把文件 fijkplayer-full-release.aar 复制到 ${fijkplayer}/android/aars 目录中。
修改文件 ${fijkplayer}/android/build.gradle 中 dependencies 内容。
```diff
-    implementation 'com.befovy.fijkplayer:fijkplayer-full:0.3.7' // 注释掉这一行
+    implementation(name: 'fijkplayer-full-release', ext: 'aar')  // 去掉这行原先的注释
```

把文件 IJKPlayer.framework 复制到 ${fijkplayer}/ios/Frameworks 目录中。
修改文件 ${fijkplayer}/ios/fijkplayer.podsped 文件内容。
```diff
+   # 去掉这三行原先的注释
+   s.preserve_paths = 'Frameworks/*.framework'
+   s.vendored_frameworks = 'Frameworks/FIJKPlayer.framework'
+   s.xcconfig = { 'LD_RUNPATH_SEARCH_PATHS' => '"$(PODS_ROOT)/Frameworks/"' }
  
-   # s.dependency 'FIJKPlayer', '~> 0.3.8' // 注释掉这一行
```


**无论你是修改 ffmpeg 配置文件重新编译 ffmpeg， 还是修改 ijkplayer 源码编译新的 ijkplayer， 请一定确保使用的是 https://github.com/befovy/ijkplayer 的衍生版本。**
