diff --git a/just_audio/example/.gitignore b/just_audio/example/.gitignore
deleted file mode 100644
index 7c36bfa..0000000
--- a/just_audio/example/.gitignore
+++ /dev/null
@@ -1,85 +0,0 @@
-# Miscellaneous
-*.class
-*.log
-*.pyc
-*.swp
-.DS_Store
-.atom/
-.buildlog/
-.history
-.svn/
-
-# IntelliJ related
-*.iml
-*.ipr
-*.iws
-.idea/
-
-# The .vscode folder contains launch configuration and tasks you configure in
-# VS Code which you may wish to be included in version control, so this line
-# is commented out by default.
-#.vscode/
-
-# Flutter/Dart/Pub related
-**/doc/api/
-**/ios/Flutter/.last_build_id
-.dart_tool/
-.flutter-plugins
-.flutter-plugins-dependencies
-.packages
-.pub-cache/
-.pub/
-/build/
-
-# Web related
-lib/generated_plugin_registrant.dart
-
-# Symbolication related
-app.*.symbols
-
-# Obfuscation related
-app.*.map.json
-
-# Android related
-**/android/**/gradle-wrapper.jar
-**/android/.gradle
-**/android/captures/
-**/android/gradlew
-**/android/gradlew.bat
-**/android/local.properties
-**/android/**/GeneratedPluginRegistrant.java
-
-# iOS/XCode related
-**/ios/**/*.mode1v3
-**/ios/**/*.mode2v3
-**/ios/**/*.moved-aside
-**/ios/**/*.pbxuser
-**/ios/**/*.perspectivev3
-**/ios/**/*sync/
-**/ios/**/.sconsign.dblite
-**/ios/**/.tags*
-**/ios/**/.vagrant/
-**/ios/**/DerivedData/
-**/ios/**/Icon?
-**/ios/**/Pods/
-**/ios/**/.symlinks/
-**/ios/**/profile
-**/ios/**/xcuserdata
-**/ios/.generated/
-**/ios/Flutter/App.framework
-**/ios/Flutter/Flutter.framework
-**/ios/Flutter/Generated.xcconfig
-**/ios/Flutter/app.flx
-**/ios/Flutter/app.zip
-**/ios/Flutter/flutter_assets/
-**/ios/Flutter/flutter_export_environment.sh
-**/ios/ServiceDefinitions.json
-**/ios/Runner/GeneratedPluginRegistrant.*
-**/ios/Flutter/Flutter.podspec
-
-# Exceptions to above rules.
-!**/ios/**/default.mode1v3
-!**/ios/**/default.mode2v3
-!**/ios/**/default.pbxuser
-!**/ios/**/default.perspectivev3
-!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
diff --git a/just_audio/example/.metadata b/just_audio/example/.metadata
deleted file mode 100644
index fea404f..0000000
--- a/just_audio/example/.metadata
+++ /dev/null
@@ -1,10 +0,0 @@
-# This file tracks properties of this Flutter project.
-# Used by Flutter tool to assess capabilities and perform upgrades etc.
-#
-# This file should be version controlled and should not be manually edited.
-
-version:
- revision: 68587a0916366e9512a78df22c44163d041dd5f3
- channel: stable
-
-project_type: app
diff --git a/just_audio/example/README.md b/just_audio/example/README.md
deleted file mode 100644
index 009ea35..0000000
--- a/just_audio/example/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# just_audio_example
-
-Demonstrates how to use the just_audio plugin.
-
-## Getting Started
-
-This project is a starting point for a Flutter application.
-
-A few resources to get you started if this is your first Flutter project:
-
-- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
-- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
-
-For help getting started with Flutter, view our
-[online documentation](https://flutter.dev/docs), which offers tutorials,
-samples, guidance on mobile development, and a full API reference.
diff --git a/just_audio/example/android/.gitignore b/just_audio/example/android/.gitignore
deleted file mode 100644
index bc2100d..0000000
--- a/just_audio/example/android/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-gradle-wrapper.jar
-/.gradle
-/captures/
-/gradlew
-/gradlew.bat
-/local.properties
-GeneratedPluginRegistrant.java
diff --git a/just_audio/example/android/app/build.gradle b/just_audio/example/android/app/build.gradle
deleted file mode 100644
index a6aa025..0000000
--- a/just_audio/example/android/app/build.gradle
+++ /dev/null
@@ -1,61 +0,0 @@
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file('local.properties')
-if (localPropertiesFile.exists()) {
- localPropertiesFile.withReader('UTF-8') { reader ->
- localProperties.load(reader)
- }
-}
-
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
- throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
-
-def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
-if (flutterVersionCode == null) {
- flutterVersionCode = '1'
-}
-
-def flutterVersionName = localProperties.getProperty('flutter.versionName')
-if (flutterVersionName == null) {
- flutterVersionName = '1.0'
-}
-
-apply plugin: 'com.android.application'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
-
-android {
- compileSdkVersion 28
-
- lintOptions {
- disable 'InvalidPackage'
- }
-
- defaultConfig {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId "com.ryanheise.just_audio_example"
- minSdkVersion 19
- targetSdkVersion 28
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
-
- buildTypes {
- release {
- // TODO: Add your own signing config for the release build.
- // Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig signingConfigs.debug
- }
- }
-}
-
-flutter {
- source '../..'
-}
-
-dependencies {
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'androidx.test:runner:1.1.1'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
-}
diff --git a/just_audio/example/android/app/src/debug/AndroidManifest.xml b/just_audio/example/android/app/src/debug/AndroidManifest.xml
deleted file mode 100644
index df636f4..0000000
--- a/just_audio/example/android/app/src/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/just_audio/example/android/app/src/main/AndroidManifest.xml b/just_audio/example/android/app/src/main/AndroidManifest.xml
deleted file mode 100644
index bfbd136..0000000
--- a/just_audio/example/android/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/just_audio/example/android/app/src/main/java/com/ryanheise/just_audio_example/MainActivity.java b/just_audio/example/android/app/src/main/java/com/ryanheise/just_audio_example/MainActivity.java
deleted file mode 100644
index ccea830..0000000
--- a/just_audio/example/android/app/src/main/java/com/ryanheise/just_audio_example/MainActivity.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.ryanheise.just_audio_example;
-
-import io.flutter.embedding.android.FlutterActivity;
-
-public class MainActivity extends FlutterActivity {
-}
diff --git a/just_audio/example/android/app/src/main/res/drawable/launch_background.xml b/just_audio/example/android/app/src/main/res/drawable/launch_background.xml
deleted file mode 100644
index 304732f..0000000
--- a/just_audio/example/android/app/src/main/res/drawable/launch_background.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/just_audio/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/just_audio/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index db77bb4..0000000
Binary files a/just_audio/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/just_audio/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/just_audio/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 17987b7..0000000
Binary files a/just_audio/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/just_audio/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/just_audio/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 09d4391..0000000
Binary files a/just_audio/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/just_audio/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/just_audio/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index d5f1c8d..0000000
Binary files a/just_audio/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/just_audio/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/just_audio/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 4d6372e..0000000
Binary files a/just_audio/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/just_audio/example/android/app/src/main/res/values/styles.xml b/just_audio/example/android/app/src/main/res/values/styles.xml
deleted file mode 100644
index 00fa441..0000000
--- a/just_audio/example/android/app/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/just_audio/example/android/app/src/profile/AndroidManifest.xml b/just_audio/example/android/app/src/profile/AndroidManifest.xml
deleted file mode 100644
index df636f4..0000000
--- a/just_audio/example/android/app/src/profile/AndroidManifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/just_audio/example/android/build.gradle b/just_audio/example/android/build.gradle
deleted file mode 100644
index e0d7ae2..0000000
--- a/just_audio/example/android/build.gradle
+++ /dev/null
@@ -1,29 +0,0 @@
-buildscript {
- repositories {
- google()
- jcenter()
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:3.5.0'
- }
-}
-
-allprojects {
- repositories {
- google()
- jcenter()
- }
-}
-
-rootProject.buildDir = '../build'
-subprojects {
- project.buildDir = "${rootProject.buildDir}/${project.name}"
-}
-subprojects {
- project.evaluationDependsOn(':app')
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
diff --git a/just_audio/example/android/gradle.properties b/just_audio/example/android/gradle.properties
deleted file mode 100644
index 38c8d45..0000000
--- a/just_audio/example/android/gradle.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-org.gradle.jvmargs=-Xmx1536M
-android.enableR8=true
-android.useAndroidX=true
-android.enableJetifier=true
diff --git a/just_audio/example/android/gradle/wrapper/gradle-wrapper.properties b/just_audio/example/android/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 7c4388a..0000000
--- a/just_audio/example/android/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/just_audio/example/android/settings.gradle b/just_audio/example/android/settings.gradle
deleted file mode 100644
index 5a2f14f..0000000
--- a/just_audio/example/android/settings.gradle
+++ /dev/null
@@ -1,15 +0,0 @@
-include ':app'
-
-def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
-
-def plugins = new Properties()
-def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
-if (pluginsFile.exists()) {
- pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
-}
-
-plugins.each { name, path ->
- def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
- include ":$name"
- project(":$name").projectDir = pluginDirectory
-}
diff --git a/just_audio/example/android/settings_aar.gradle b/just_audio/example/android/settings_aar.gradle
deleted file mode 100644
index e7b4def..0000000
--- a/just_audio/example/android/settings_aar.gradle
+++ /dev/null
@@ -1 +0,0 @@
-include ':app'
diff --git a/just_audio/example/ios/.gitignore b/just_audio/example/ios/.gitignore
deleted file mode 100644
index e96ef60..0000000
--- a/just_audio/example/ios/.gitignore
+++ /dev/null
@@ -1,32 +0,0 @@
-*.mode1v3
-*.mode2v3
-*.moved-aside
-*.pbxuser
-*.perspectivev3
-**/*sync/
-.sconsign.dblite
-.tags*
-**/.vagrant/
-**/DerivedData/
-Icon?
-**/Pods/
-**/.symlinks/
-profile
-xcuserdata
-**/.generated/
-Flutter/App.framework
-Flutter/Flutter.framework
-Flutter/Flutter.podspec
-Flutter/Generated.xcconfig
-Flutter/app.flx
-Flutter/app.zip
-Flutter/flutter_assets/
-Flutter/flutter_export_environment.sh
-ServiceDefinitions.json
-Runner/GeneratedPluginRegistrant.*
-
-# Exceptions to above rules.
-!default.mode1v3
-!default.mode2v3
-!default.pbxuser
-!default.perspectivev3
diff --git a/just_audio/example/ios/Flutter/AppFrameworkInfo.plist b/just_audio/example/ios/Flutter/AppFrameworkInfo.plist
deleted file mode 100644
index 6b4c0f7..0000000
--- a/just_audio/example/ios/Flutter/AppFrameworkInfo.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- $(DEVELOPMENT_LANGUAGE)
- CFBundleExecutable
- App
- CFBundleIdentifier
- io.flutter.flutter.app
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- App
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- MinimumOSVersion
- 8.0
-
-
diff --git a/just_audio/example/ios/Flutter/Debug.xcconfig b/just_audio/example/ios/Flutter/Debug.xcconfig
deleted file mode 100644
index e8efba1..0000000
--- a/just_audio/example/ios/Flutter/Debug.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
-#include "Generated.xcconfig"
diff --git a/just_audio/example/ios/Flutter/Release.xcconfig b/just_audio/example/ios/Flutter/Release.xcconfig
deleted file mode 100644
index 399e934..0000000
--- a/just_audio/example/ios/Flutter/Release.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
-#include "Generated.xcconfig"
diff --git a/just_audio/example/ios/Podfile b/just_audio/example/ios/Podfile
deleted file mode 100644
index f7d6a5e..0000000
--- a/just_audio/example/ios/Podfile
+++ /dev/null
@@ -1,38 +0,0 @@
-# Uncomment this line to define a global platform for your project
-# platform :ios, '9.0'
-
-# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
-ENV['COCOAPODS_DISABLE_STATS'] = 'true'
-
-project 'Runner', {
- 'Debug' => :debug,
- 'Profile' => :release,
- 'Release' => :release,
-}
-
-def flutter_root
- generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
- unless File.exist?(generated_xcode_build_settings_path)
- raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
- end
-
- File.foreach(generated_xcode_build_settings_path) do |line|
- matches = line.match(/FLUTTER_ROOT\=(.*)/)
- return matches[1].strip if matches
- end
- raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
-end
-
-require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
-
-flutter_ios_podfile_setup
-
-target 'Runner' do
- flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
-end
-
-post_install do |installer|
- installer.pods_project.targets.each do |target|
- flutter_additional_ios_build_settings(target)
- end
-end
diff --git a/just_audio/example/ios/Podfile.lock b/just_audio/example/ios/Podfile.lock
deleted file mode 100644
index af27c5e..0000000
--- a/just_audio/example/ios/Podfile.lock
+++ /dev/null
@@ -1,34 +0,0 @@
-PODS:
- - audio_session (0.0.1):
- - Flutter
- - Flutter (1.0.0)
- - just_audio (0.0.1):
- - Flutter
- - path_provider (0.0.1):
- - Flutter
-
-DEPENDENCIES:
- - audio_session (from `.symlinks/plugins/audio_session/ios`)
- - Flutter (from `Flutter`)
- - just_audio (from `.symlinks/plugins/just_audio/ios`)
- - path_provider (from `.symlinks/plugins/path_provider/ios`)
-
-EXTERNAL SOURCES:
- audio_session:
- :path: ".symlinks/plugins/audio_session/ios"
- Flutter:
- :path: Flutter
- just_audio:
- :path: ".symlinks/plugins/just_audio/ios"
- path_provider:
- :path: ".symlinks/plugins/path_provider/ios"
-
-SPEC CHECKSUMS:
- audio_session: 4f3e461722055d21515cf3261b64c973c062f345
- Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
- just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
- path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
-
-PODFILE CHECKSUM: 8e679eca47255a8ca8067c4c67aab20e64cb974d
-
-COCOAPODS: 1.9.3
diff --git a/just_audio/example/ios/Runner.xcodeproj/project.pbxproj b/just_audio/example/ios/Runner.xcodeproj/project.pbxproj
deleted file mode 100644
index 442406c..0000000
--- a/just_audio/example/ios/Runner.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,564 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
- 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
- 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
- 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
- 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
- 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
- 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
- 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
- D06FA586B72D3A4E8145F7B3 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F18129E1310C9DA1B65F44 /* libPods-Runner.a */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 10;
- files = (
- );
- name = "Embed Frameworks";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
- 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
- 2920064AACAD73E894573C6E /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
- 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
- 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
- 936C8FBACDB1725D477088CC /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
- 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
- 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
- 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
- 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
- 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- C5F18129E1310C9DA1B65F44 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- EEEB488F061389F2C0725BDD /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 97C146EB1CF9000F007C117D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D06FA586B72D3A4E8145F7B3 /* libPods-Runner.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 1E7998A536E2BAD21DDFF12E /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- C5F18129E1310C9DA1B65F44 /* libPods-Runner.a */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- 9740EEB11CF90186004384FC /* Flutter */ = {
- isa = PBXGroup;
- children = (
- 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
- 9740EEB21CF90195004384FC /* Debug.xcconfig */,
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
- 9740EEB31CF90195004384FC /* Generated.xcconfig */,
- );
- name = Flutter;
- sourceTree = "";
- };
- 97C146E51CF9000F007C117D = {
- isa = PBXGroup;
- children = (
- 9740EEB11CF90186004384FC /* Flutter */,
- 97C146F01CF9000F007C117D /* Runner */,
- 97C146EF1CF9000F007C117D /* Products */,
- A27F1C3EF07264C52FFA0B86 /* Pods */,
- 1E7998A536E2BAD21DDFF12E /* Frameworks */,
- );
- sourceTree = "";
- };
- 97C146EF1CF9000F007C117D /* Products */ = {
- isa = PBXGroup;
- children = (
- 97C146EE1CF9000F007C117D /* Runner.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 97C146F01CF9000F007C117D /* Runner */ = {
- isa = PBXGroup;
- children = (
- 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */,
- 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */,
- 97C146FA1CF9000F007C117D /* Main.storyboard */,
- 97C146FD1CF9000F007C117D /* Assets.xcassets */,
- 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
- 97C147021CF9000F007C117D /* Info.plist */,
- 97C146F11CF9000F007C117D /* Supporting Files */,
- 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
- 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
- );
- path = Runner;
- sourceTree = "";
- };
- 97C146F11CF9000F007C117D /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 97C146F21CF9000F007C117D /* main.m */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- A27F1C3EF07264C52FFA0B86 /* Pods */ = {
- isa = PBXGroup;
- children = (
- EEEB488F061389F2C0725BDD /* Pods-Runner.debug.xcconfig */,
- 2920064AACAD73E894573C6E /* Pods-Runner.release.xcconfig */,
- 936C8FBACDB1725D477088CC /* Pods-Runner.profile.xcconfig */,
- );
- name = Pods;
- path = Pods;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 97C146ED1CF9000F007C117D /* Runner */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
- buildPhases = (
- 3D5B4DF09BB47DFA6E4B8495 /* [CP] Check Pods Manifest.lock */,
- 9740EEB61CF901F6004384FC /* Run Script */,
- 97C146EA1CF9000F007C117D /* Sources */,
- 97C146EB1CF9000F007C117D /* Frameworks */,
- 97C146EC1CF9000F007C117D /* Resources */,
- 9705A1C41CF9048500538489 /* Embed Frameworks */,
- 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- A38593E728AFE0DAE382B1D1 /* [CP] Embed Pods Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = Runner;
- productName = Runner;
- productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 97C146E61CF9000F007C117D /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 1020;
- ORGANIZATIONNAME = "The Chromium Authors";
- TargetAttributes = {
- 97C146ED1CF9000F007C117D = {
- CreatedOnToolsVersion = 7.3.1;
- };
- };
- };
- buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 97C146E51CF9000F007C117D;
- productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 97C146ED1CF9000F007C117D /* Runner */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 97C146EC1CF9000F007C117D /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
- 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
- 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,
- 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
- 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Thin Binary";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
- };
- 3D5B4DF09BB47DFA6E4B8495 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- 9740EEB61CF901F6004384FC /* Run Script */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Run Script";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
- };
- A38593E728AFE0DAE382B1D1 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
- "${PODS_ROOT}/../Flutter/Flutter.framework",
- );
- name = "[CP] Embed Pods Frameworks";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 97C146EA1CF9000F007C117D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */,
- 97C146F31CF9000F007C117D /* main.m in Sources */,
- 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
- 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 97C146FB1CF9000F007C117D /* Base */,
- );
- name = Main.storyboard;
- sourceTree = "";
- };
- 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
- isa = PBXVariantGroup;
- children = (
- 97C147001CF9000F007C117D /* Base */,
- );
- name = LaunchScreen.storyboard;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 249021D3217E4FDB00AE95B9 /* Profile */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Profile;
- };
- 249021D4217E4FDB00AE95B9 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.ryanheise.audioPlayerExample;
- PRODUCT_NAME = "$(TARGET_NAME)";
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Profile;
- };
- 97C147031CF9000F007C117D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- 97C147041CF9000F007C117D /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- 97C147061CF9000F007C117D /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.ryanheise.audioPlayerExample;
- PRODUCT_NAME = "$(TARGET_NAME)";
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Debug;
- };
- 97C147071CF9000F007C117D /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.ryanheise.audioPlayerExample;
- PRODUCT_NAME = "$(TARGET_NAME)";
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 97C147031CF9000F007C117D /* Debug */,
- 97C147041CF9000F007C117D /* Release */,
- 249021D3217E4FDB00AE95B9 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 97C147061CF9000F007C117D /* Debug */,
- 97C147071CF9000F007C117D /* Release */,
- 249021D4217E4FDB00AE95B9 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 97C146E61CF9000F007C117D /* Project object */;
-}
diff --git a/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 1d526a1..0000000
--- a/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c..0000000
--- a/just_audio/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/just_audio/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/just_audio/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted file mode 100644
index a28140c..0000000
--- a/just_audio/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/just_audio/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/just_audio/example/ios/Runner.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 21a3cc1..0000000
--- a/just_audio/example/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/just_audio/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/just_audio/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/just_audio/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/just_audio/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/just_audio/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
deleted file mode 100644
index f9b0d7c..0000000
--- a/just_audio/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- PreviewsEnabled
-
-
-
diff --git a/just_audio/example/ios/Runner/AppDelegate.h b/just_audio/example/ios/Runner/AppDelegate.h
deleted file mode 100644
index 36e21bb..0000000
--- a/just_audio/example/ios/Runner/AppDelegate.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#import
-#import
-
-@interface AppDelegate : FlutterAppDelegate
-
-@end
diff --git a/just_audio/example/ios/Runner/AppDelegate.m b/just_audio/example/ios/Runner/AppDelegate.m
deleted file mode 100644
index 59a72e9..0000000
--- a/just_audio/example/ios/Runner/AppDelegate.m
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "AppDelegate.h"
-#include "GeneratedPluginRegistrant.h"
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application
- didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- [GeneratedPluginRegistrant registerWithRegistry:self];
- // Override point for customization after application launch.
- return [super application:application didFinishLaunchingWithOptions:launchOptions];
-}
-
-@end
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index d36b1fa..0000000
--- a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "images" : [
- {
- "size" : "20x20",
- "idiom" : "iphone",
- "filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "20x20",
- "idiom" : "iphone",
- "filename" : "Icon-App-20x20@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "iphone",
- "filename" : "Icon-App-29x29@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "iphone",
- "filename" : "Icon-App-40x40@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-App-60x60@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "60x60",
- "idiom" : "iphone",
- "filename" : "Icon-App-60x60@3x.png",
- "scale" : "3x"
- },
- {
- "size" : "20x20",
- "idiom" : "ipad",
- "filename" : "Icon-App-20x20@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "20x20",
- "idiom" : "ipad",
- "filename" : "Icon-App-20x20@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-App-29x29@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "29x29",
- "idiom" : "ipad",
- "filename" : "Icon-App-29x29@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-App-40x40@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "40x40",
- "idiom" : "ipad",
- "filename" : "Icon-App-40x40@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-App-76x76@1x.png",
- "scale" : "1x"
- },
- {
- "size" : "76x76",
- "idiom" : "ipad",
- "filename" : "Icon-App-76x76@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "83.5x83.5",
- "idiom" : "ipad",
- "filename" : "Icon-App-83.5x83.5@2x.png",
- "scale" : "2x"
- },
- {
- "size" : "1024x1024",
- "idiom" : "ios-marketing",
- "filename" : "Icon-App-1024x1024@1x.png",
- "scale" : "1x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
deleted file mode 100644
index dc9ada4..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
deleted file mode 100644
index 28c6bf0..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
deleted file mode 100644
index 2ccbfd9..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
deleted file mode 100644
index f091b6b..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
deleted file mode 100644
index 4cde121..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
deleted file mode 100644
index d0ef06e..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
deleted file mode 100644
index dcdc230..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
deleted file mode 100644
index 2ccbfd9..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
deleted file mode 100644
index c8f9ed8..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
deleted file mode 100644
index a6d6b86..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
deleted file mode 100644
index a6d6b86..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
deleted file mode 100644
index 75b2d16..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
deleted file mode 100644
index c4df70d..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
deleted file mode 100644
index 6a84f41..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
deleted file mode 100644
index d0e1f58..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
deleted file mode 100644
index 0bedcf2..0000000
--- a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "filename" : "LaunchImage.png",
- "scale" : "1x"
- },
- {
- "idiom" : "universal",
- "filename" : "LaunchImage@2x.png",
- "scale" : "2x"
- },
- {
- "idiom" : "universal",
- "filename" : "LaunchImage@3x.png",
- "scale" : "3x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
deleted file mode 100644
index 9da19ea..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
deleted file mode 100644
index 9da19ea..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
deleted file mode 100644
index 9da19ea..0000000
Binary files a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and /dev/null differ
diff --git a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
deleted file mode 100644
index 89c2725..0000000
--- a/just_audio/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Launch Screen Assets
-
-You can customize the launch screen with your own desired assets by replacing the image files in this directory.
-
-You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
\ No newline at end of file
diff --git a/just_audio/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/just_audio/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
deleted file mode 100644
index f2e259c..0000000
--- a/just_audio/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/just_audio/example/ios/Runner/Base.lproj/Main.storyboard b/just_audio/example/ios/Runner/Base.lproj/Main.storyboard
deleted file mode 100644
index f3c2851..0000000
--- a/just_audio/example/ios/Runner/Base.lproj/Main.storyboard
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/just_audio/example/ios/Runner/Info.plist b/just_audio/example/ios/Runner/Info.plist
deleted file mode 100644
index 9324af6..0000000
--- a/just_audio/example/ios/Runner/Info.plist
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- $(DEVELOPMENT_LANGUAGE)
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- just_audio_example
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- $(FLUTTER_BUILD_NAME)
- CFBundleSignature
- ????
- CFBundleVersion
- $(FLUTTER_BUILD_NUMBER)
- LSRequiresIPhoneOS
-
- UILaunchStoryboardName
- LaunchScreen
- UIMainStoryboardFile
- Main
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UIViewControllerBasedStatusBarAppearance
-
-
-
diff --git a/just_audio/example/ios/Runner/main.m b/just_audio/example/ios/Runner/main.m
deleted file mode 100644
index dff6597..0000000
--- a/just_audio/example/ios/Runner/main.m
+++ /dev/null
@@ -1,9 +0,0 @@
-#import
-#import
-#import "AppDelegate.h"
-
-int main(int argc, char* argv[]) {
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/just_audio/example/lib/main.dart b/just_audio/example/lib/main.dart
deleted file mode 100644
index e1f5a4e..0000000
--- a/just_audio/example/lib/main.dart
+++ /dev/null
@@ -1,430 +0,0 @@
-import 'dart:math';
-
-import 'package:audio_session/audio_session.dart';
-import 'package:flutter/material.dart';
-import 'package:flutter/services.dart';
-import 'package:just_audio/just_audio.dart';
-
-void main() => runApp(MyApp());
-
-class MyApp extends StatefulWidget {
- @override
- _MyAppState createState() => _MyAppState();
-}
-
-class _MyAppState extends State {
- AudioPlayer _player;
- ConcatenatingAudioSource _playlist = ConcatenatingAudioSource(children: [
- LoopingAudioSource(
- count: 2,
- child: ClippingAudioSource(
- start: Duration(seconds: 60),
- end: Duration(seconds: 65),
- child: AudioSource.uri(Uri.parse(
- "https://s3.amazonaws.com/scifri-episodes/scifri20181123-episode.mp3")),
- tag: AudioMetadata(
- album: "Science Friday",
- title: "A Salute To Head-Scratching Science (5 seconds)",
- artwork:
- "https://media.wnyc.org/i/1400/1400/l/80/1/ScienceFriday_WNYCStudios_1400.jpg",
- ),
- ),
- ),
- AudioSource.uri(
- Uri.parse(
- "https://s3.amazonaws.com/scifri-episodes/scifri20181123-episode.mp3"),
- tag: AudioMetadata(
- album: "Science Friday",
- title: "A Salute To Head-Scratching Science",
- artwork:
- "https://media.wnyc.org/i/1400/1400/l/80/1/ScienceFriday_WNYCStudios_1400.jpg",
- ),
- ),
- AudioSource.uri(
- Uri.parse("https://s3.amazonaws.com/scifri-segments/scifri201711241.mp3"),
- tag: AudioMetadata(
- album: "Science Friday",
- title: "From Cat Rheology To Operatic Incompetence",
- artwork:
- "https://media.wnyc.org/i/1400/1400/l/80/1/ScienceFriday_WNYCStudios_1400.jpg",
- ),
- ),
- ]);
-
- @override
- void initState() {
- super.initState();
- _player = AudioPlayer();
- SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
- statusBarColor: Colors.black,
- ));
- _init();
- }
-
- _init() async {
- final session = await AudioSession.instance;
- await session.configure(AudioSessionConfiguration.speech());
- try {
- await _player.setAudioSource(_playlist);
- } catch (e) {
- // catch load errors: 404, invalid url ...
- print("An error occured $e");
- }
- }
-
- @override
- void dispose() {
- _player.dispose();
- super.dispose();
- }
-
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- debugShowCheckedModeBanner: false,
- home: Scaffold(
- body: SafeArea(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Expanded(
- child: StreamBuilder(
- stream: _player.sequenceStateStream,
- builder: (context, snapshot) {
- final state = snapshot.data;
- if (state?.sequence?.isEmpty ?? true) return SizedBox();
- final metadata = state.currentSource.tag as AudioMetadata;
- return Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- Expanded(
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child:
- Center(child: Image.network(metadata.artwork)),
- ),
- ),
- Text(metadata.album ?? '',
- style: Theme.of(context).textTheme.headline6),
- Text(metadata.title ?? ''),
- ],
- );
- },
- ),
- ),
- ControlButtons(_player),
- StreamBuilder(
- stream: _player.durationStream,
- builder: (context, snapshot) {
- final duration = snapshot.data ?? Duration.zero;
- return StreamBuilder(
- stream: _player.positionStream,
- builder: (context, snapshot) {
- var position = snapshot.data ?? Duration.zero;
- if (position > duration) {
- position = duration;
- }
- return SeekBar(
- duration: duration,
- position: position,
- onChangeEnd: (newPosition) {
- _player.seek(newPosition);
- },
- );
- },
- );
- },
- ),
- SizedBox(height: 8.0),
- Row(
- children: [
- StreamBuilder(
- stream: _player.loopModeStream,
- builder: (context, snapshot) {
- final loopMode = snapshot.data ?? LoopMode.off;
- const icons = [
- Icon(Icons.repeat, color: Colors.grey),
- Icon(Icons.repeat, color: Colors.orange),
- Icon(Icons.repeat_one, color: Colors.orange),
- ];
- const cycleModes = [
- LoopMode.off,
- LoopMode.all,
- LoopMode.one,
- ];
- final index = cycleModes.indexOf(loopMode);
- return IconButton(
- icon: icons[index],
- onPressed: () {
- _player.setLoopMode(cycleModes[
- (cycleModes.indexOf(loopMode) + 1) %
- cycleModes.length]);
- },
- );
- },
- ),
- Expanded(
- child: Text(
- "Playlist",
- style: Theme.of(context).textTheme.headline6,
- textAlign: TextAlign.center,
- ),
- ),
- StreamBuilder(
- stream: _player.shuffleModeEnabledStream,
- builder: (context, snapshot) {
- final shuffleModeEnabled = snapshot.data ?? false;
- return IconButton(
- icon: shuffleModeEnabled
- ? Icon(Icons.shuffle, color: Colors.orange)
- : Icon(Icons.shuffle, color: Colors.grey),
- onPressed: () async {
- final enable = !shuffleModeEnabled;
- if (enable) {
- await _player.shuffle();
- }
- await _player.setShuffleModeEnabled(enable);
- },
- );
- },
- ),
- ],
- ),
- Container(
- height: 240.0,
- child: StreamBuilder(
- stream: _player.sequenceStateStream,
- builder: (context, snapshot) {
- final state = snapshot.data;
- final sequence = state?.sequence ?? [];
- return ListView.builder(
- itemCount: sequence.length,
- itemBuilder: (context, index) => Material(
- color: index == state.currentIndex
- ? Colors.grey.shade300
- : null,
- child: ListTile(
- title: Text(sequence[index].tag.title),
- onTap: () {
- _player.seek(Duration.zero, index: index);
- },
- ),
- ),
- );
- },
- ),
- ),
- ],
- ),
- ),
- ),
- );
- }
-}
-
-class ControlButtons extends StatelessWidget {
- final AudioPlayer player;
-
- ControlButtons(this.player);
-
- @override
- Widget build(BuildContext context) {
- return Row(
- mainAxisSize: MainAxisSize.min,
- children: [
- IconButton(
- icon: Icon(Icons.volume_up),
- onPressed: () {
- _showSliderDialog(
- context: context,
- title: "Adjust volume",
- divisions: 10,
- min: 0.0,
- max: 1.0,
- stream: player.volumeStream,
- onChanged: player.setVolume,
- );
- },
- ),
- StreamBuilder(
- stream: player.sequenceStateStream,
- builder: (context, snapshot) => IconButton(
- icon: Icon(Icons.skip_previous),
- onPressed: player.hasPrevious ? player.seekToPrevious : null,
- ),
- ),
- StreamBuilder(
- stream: player.playerStateStream,
- builder: (context, snapshot) {
- final playerState = snapshot.data;
- final processingState = playerState?.processingState;
- final playing = playerState?.playing;
- if (processingState == ProcessingState.loading ||
- processingState == ProcessingState.buffering) {
- return Container(
- margin: EdgeInsets.all(8.0),
- width: 64.0,
- height: 64.0,
- child: CircularProgressIndicator(),
- );
- } else if (playing != true) {
- return IconButton(
- icon: Icon(Icons.play_arrow),
- iconSize: 64.0,
- onPressed: player.play,
- );
- } else if (processingState != ProcessingState.completed) {
- return IconButton(
- icon: Icon(Icons.pause),
- iconSize: 64.0,
- onPressed: player.pause,
- );
- } else {
- return IconButton(
- icon: Icon(Icons.replay),
- iconSize: 64.0,
- onPressed: () => player.seek(Duration.zero,
- index: player.effectiveIndices.first),
- );
- }
- },
- ),
- StreamBuilder(
- stream: player.sequenceStateStream,
- builder: (context, snapshot) => IconButton(
- icon: Icon(Icons.skip_next),
- onPressed: player.hasNext ? player.seekToNext : null,
- ),
- ),
- StreamBuilder(
- stream: player.speedStream,
- builder: (context, snapshot) => IconButton(
- icon: Text("${snapshot.data?.toStringAsFixed(1)}x",
- style: TextStyle(fontWeight: FontWeight.bold)),
- onPressed: () {
- _showSliderDialog(
- context: context,
- title: "Adjust speed",
- divisions: 10,
- min: 0.5,
- max: 1.5,
- stream: player.speedStream,
- onChanged: player.setSpeed,
- );
- },
- ),
- ),
- ],
- );
- }
-}
-
-class SeekBar extends StatefulWidget {
- final Duration duration;
- final Duration position;
- final ValueChanged onChanged;
- final ValueChanged onChangeEnd;
-
- SeekBar({
- @required this.duration,
- @required this.position,
- this.onChanged,
- this.onChangeEnd,
- });
-
- @override
- _SeekBarState createState() => _SeekBarState();
-}
-
-class _SeekBarState extends State {
- double _dragValue;
-
- @override
- Widget build(BuildContext context) {
- return Stack(
- children: [
- Slider(
- min: 0.0,
- max: widget.duration.inMilliseconds.toDouble(),
- value: min(_dragValue ?? widget.position.inMilliseconds.toDouble(),
- widget.duration.inMilliseconds.toDouble()),
- onChanged: (value) {
- setState(() {
- _dragValue = value;
- });
- if (widget.onChanged != null) {
- widget.onChanged(Duration(milliseconds: value.round()));
- }
- },
- onChangeEnd: (value) {
- if (widget.onChangeEnd != null) {
- widget.onChangeEnd(Duration(milliseconds: value.round()));
- }
- _dragValue = null;
- },
- ),
- Positioned(
- right: 16.0,
- bottom: 0.0,
- child: Text(
- RegExp(r'((^0*[1-9]\d*:)?\d{2}:\d{2})\.\d+$')
- .firstMatch("$_remaining")
- ?.group(1) ??
- '$_remaining',
- style: Theme.of(context).textTheme.caption),
- ),
- ],
- );
- }
-
- Duration get _remaining => widget.duration - widget.position;
-}
-
-_showSliderDialog({
- BuildContext context,
- String title,
- int divisions,
- double min,
- double max,
- String valueSuffix = '',
- Stream stream,
- ValueChanged onChanged,
-}) {
- showDialog(
- context: context,
- builder: (context) => AlertDialog(
- title: Text(title, textAlign: TextAlign.center),
- content: StreamBuilder(
- stream: stream,
- builder: (context, snapshot) => Container(
- height: 100.0,
- child: Column(
- children: [
- Text('${snapshot.data?.toStringAsFixed(1)}$valueSuffix',
- style: TextStyle(
- fontFamily: 'Fixed',
- fontWeight: FontWeight.bold,
- fontSize: 24.0)),
- Slider(
- divisions: divisions,
- min: min,
- max: max,
- value: snapshot.data ?? 1.0,
- onChanged: onChanged,
- ),
- ],
- ),
- ),
- ),
- ),
- );
-}
-
-class AudioMetadata {
- final String album;
- final String title;
- final String artwork;
-
- AudioMetadata({this.album, this.title, this.artwork});
-}
diff --git a/just_audio/example/macos/.gitignore b/just_audio/example/macos/.gitignore
deleted file mode 100644
index d2fd377..0000000
--- a/just_audio/example/macos/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-# Flutter-related
-**/Flutter/ephemeral/
-**/Pods/
-
-# Xcode-related
-**/xcuserdata/
diff --git a/just_audio/example/macos/Flutter/Flutter-Debug.xcconfig b/just_audio/example/macos/Flutter/Flutter-Debug.xcconfig
deleted file mode 100644
index 785633d..0000000
--- a/just_audio/example/macos/Flutter/Flutter-Debug.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
-#include "ephemeral/Flutter-Generated.xcconfig"
diff --git a/just_audio/example/macos/Flutter/Flutter-Release.xcconfig b/just_audio/example/macos/Flutter/Flutter-Release.xcconfig
deleted file mode 100644
index 5fba960..0000000
--- a/just_audio/example/macos/Flutter/Flutter-Release.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
-#include "ephemeral/Flutter-Generated.xcconfig"
diff --git a/just_audio/example/macos/Flutter/GeneratedPluginRegistrant.swift b/just_audio/example/macos/Flutter/GeneratedPluginRegistrant.swift
deleted file mode 100644
index c891b67..0000000
--- a/just_audio/example/macos/Flutter/GeneratedPluginRegistrant.swift
+++ /dev/null
@@ -1,16 +0,0 @@
-//
-// Generated file. Do not edit.
-//
-
-import FlutterMacOS
-import Foundation
-
-import audio_session
-import just_audio
-import path_provider_macos
-
-func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
- AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin"))
- JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin"))
- PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
-}
diff --git a/just_audio/example/macos/Podfile b/just_audio/example/macos/Podfile
deleted file mode 100644
index d60ec71..0000000
--- a/just_audio/example/macos/Podfile
+++ /dev/null
@@ -1,82 +0,0 @@
-platform :osx, '10.11'
-
-# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
-ENV['COCOAPODS_DISABLE_STATS'] = 'true'
-
-project 'Runner', {
- 'Debug' => :debug,
- 'Profile' => :release,
- 'Release' => :release,
-}
-
-def parse_KV_file(file, separator='=')
- file_abs_path = File.expand_path(file)
- if !File.exists? file_abs_path
- return [];
- end
- pods_ary = []
- skip_line_start_symbols = ["#", "/"]
- File.foreach(file_abs_path) { |line|
- next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
- plugin = line.split(pattern=separator)
- if plugin.length == 2
- podname = plugin[0].strip()
- path = plugin[1].strip()
- podpath = File.expand_path("#{path}", file_abs_path)
- pods_ary.push({:name => podname, :path => podpath});
- else
- puts "Invalid plugin specification: #{line}"
- end
- }
- return pods_ary
-end
-
-def pubspec_supports_macos(file)
- file_abs_path = File.expand_path(file)
- if !File.exists? file_abs_path
- return false;
- end
- File.foreach(file_abs_path) { |line|
- return true if line =~ /^\s*macos:/
- }
- return false
-end
-
-target 'Runner' do
- use_frameworks!
- use_modular_headers!
-
- # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
- # referring to absolute paths on developers' machines.
- ephemeral_dir = File.join('Flutter', 'ephemeral')
- symlink_dir = File.join(ephemeral_dir, '.symlinks')
- symlink_plugins_dir = File.join(symlink_dir, 'plugins')
- system("rm -rf #{symlink_dir}")
- system("mkdir -p #{symlink_plugins_dir}")
-
- # Flutter Pods
- generated_xcconfig = parse_KV_file(File.join(ephemeral_dir, 'Flutter-Generated.xcconfig'))
- if generated_xcconfig.empty?
- puts "Flutter-Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
- end
- generated_xcconfig.map { |p|
- if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
- symlink = File.join(symlink_dir, 'flutter')
- File.symlink(File.dirname(p[:path]), symlink)
- pod 'FlutterMacOS', :path => File.join(symlink, File.basename(p[:path]))
- end
- }
-
- # Plugin Pods
- plugin_pods = parse_KV_file('../.flutter-plugins')
- plugin_pods.map { |p|
- symlink = File.join(symlink_plugins_dir, p[:name])
- File.symlink(p[:path], symlink)
- if pubspec_supports_macos(File.join(symlink, 'pubspec.yaml'))
- pod p[:name], :path => File.join(symlink, 'macos')
- end
- }
-end
-
-# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
-install! 'cocoapods', :disable_input_output_paths => true
diff --git a/just_audio/example/macos/Podfile.lock b/just_audio/example/macos/Podfile.lock
deleted file mode 100644
index f7d68bc..0000000
--- a/just_audio/example/macos/Podfile.lock
+++ /dev/null
@@ -1,39 +0,0 @@
-PODS:
- - audio_session (0.0.1):
- - FlutterMacOS
- - FlutterMacOS (1.0.0)
- - just_audio (0.0.1):
- - FlutterMacOS
- - path_provider (0.0.1)
- - path_provider_macos (0.0.1):
- - FlutterMacOS
-
-DEPENDENCIES:
- - audio_session (from `Flutter/ephemeral/.symlinks/plugins/audio_session/macos`)
- - FlutterMacOS (from `Flutter/ephemeral/.symlinks/flutter/darwin-x64`)
- - just_audio (from `Flutter/ephemeral/.symlinks/plugins/just_audio/macos`)
- - path_provider (from `Flutter/ephemeral/.symlinks/plugins/path_provider/macos`)
- - path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`)
-
-EXTERNAL SOURCES:
- audio_session:
- :path: Flutter/ephemeral/.symlinks/plugins/audio_session/macos
- FlutterMacOS:
- :path: Flutter/ephemeral/.symlinks/flutter/darwin-x64
- just_audio:
- :path: Flutter/ephemeral/.symlinks/plugins/just_audio/macos
- path_provider:
- :path: Flutter/ephemeral/.symlinks/plugins/path_provider/macos
- path_provider_macos:
- :path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos
-
-SPEC CHECKSUMS:
- audio_session: dea1f41890dbf1718f04a56f1d6150fd50039b72
- FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9
- just_audio: 1a11463e7e522bd4e8caa925b4247f1360cbe5a2
- path_provider: e0848572d1d38b9a7dd099e79cf83f5b7e2cde9f
- path_provider_macos: a0a3fd666cb7cd0448e936fb4abad4052961002b
-
-PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7
-
-COCOAPODS: 1.9.3
diff --git a/just_audio/example/macos/Runner.xcodeproj/project.pbxproj b/just_audio/example/macos/Runner.xcodeproj/project.pbxproj
deleted file mode 100644
index 8523899..0000000
--- a/just_audio/example/macos/Runner.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,654 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 51;
- objects = {
-
-/* Begin PBXAggregateTarget section */
- 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
- isa = PBXAggregateTarget;
- buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
- buildPhases = (
- 33CC111E2044C6BF0003C045 /* ShellScript */,
- );
- dependencies = (
- );
- name = "Flutter Assemble";
- productName = FLX;
- };
-/* End PBXAggregateTarget section */
-
-/* Begin PBXBuildFile section */
- 1BEEF829E111499DFFB9AFA4 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77D68B92366F60419FE029D8 /* Pods_Runner.framework */; };
- 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
- 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
- 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
- 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
- 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
- 33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; };
- 33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- D73912F022F37F9E000D13A0 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; };
- D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 33CC111A2044C6BA0003C045;
- remoteInfo = FLX;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 33CC110E2044A8840003C045 /* Bundle Framework */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "";
- dstSubfolderSpec = 10;
- files = (
- D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */,
- 33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */,
- );
- name = "Bundle Framework";
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; };
- 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; };
- 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
- 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; };
- 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
- 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; };
- 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; };
- 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; };
- 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; };
- 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; };
- 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FlutterMacOS.framework; path = Flutter/ephemeral/FlutterMacOS.framework; sourceTree = SOURCE_ROOT; };
- 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; };
- 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; };
- 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; };
- 409BAEF54B9B17B5585F3A06 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
- 77D68B92366F60419FE029D8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; };
- 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; };
- 9C700360F2F4515FF4E74F2B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
- D73912EF22F37F9E000D13A0 /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/ephemeral/App.framework; sourceTree = SOURCE_ROOT; };
- DA266879E6DA6E3956F07D12 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 33CC10EA2044A3C60003C045 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- D73912F022F37F9E000D13A0 /* App.framework in Frameworks */,
- 33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */,
- 1BEEF829E111499DFFB9AFA4 /* Pods_Runner.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 33BA886A226E78AF003329D5 /* Configs */ = {
- isa = PBXGroup;
- children = (
- 33E5194F232828860026EE4D /* AppInfo.xcconfig */,
- 9740EEB21CF90195004384FC /* Debug.xcconfig */,
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
- 333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
- );
- path = Configs;
- sourceTree = "";
- };
- 33CC10E42044A3C60003C045 = {
- isa = PBXGroup;
- children = (
- 33FAB671232836740065AC1E /* Runner */,
- 33CEB47122A05771004F2AC0 /* Flutter */,
- 33CC10EE2044A3C60003C045 /* Products */,
- D73912EC22F37F3D000D13A0 /* Frameworks */,
- B89C79F942A13E07457B4DD9 /* Pods */,
- );
- sourceTree = "";
- };
- 33CC10EE2044A3C60003C045 /* Products */ = {
- isa = PBXGroup;
- children = (
- 33CC10ED2044A3C60003C045 /* example.app */,
- );
- name = Products;
- sourceTree = "";
- };
- 33CC11242044D66E0003C045 /* Resources */ = {
- isa = PBXGroup;
- children = (
- 33CC10F22044A3C60003C045 /* Assets.xcassets */,
- 33CC10F42044A3C60003C045 /* MainMenu.xib */,
- 33CC10F72044A3C60003C045 /* Info.plist */,
- );
- name = Resources;
- path = ..;
- sourceTree = "";
- };
- 33CEB47122A05771004F2AC0 /* Flutter */ = {
- isa = PBXGroup;
- children = (
- 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
- 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
- 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
- 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
- D73912EF22F37F9E000D13A0 /* App.framework */,
- 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */,
- );
- path = Flutter;
- sourceTree = "";
- };
- 33FAB671232836740065AC1E /* Runner */ = {
- isa = PBXGroup;
- children = (
- 33CC10F02044A3C60003C045 /* AppDelegate.swift */,
- 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
- 33E51913231747F40026EE4D /* DebugProfile.entitlements */,
- 33E51914231749380026EE4D /* Release.entitlements */,
- 33CC11242044D66E0003C045 /* Resources */,
- 33BA886A226E78AF003329D5 /* Configs */,
- );
- path = Runner;
- sourceTree = "";
- };
- B89C79F942A13E07457B4DD9 /* Pods */ = {
- isa = PBXGroup;
- children = (
- 409BAEF54B9B17B5585F3A06 /* Pods-Runner.debug.xcconfig */,
- DA266879E6DA6E3956F07D12 /* Pods-Runner.release.xcconfig */,
- 9C700360F2F4515FF4E74F2B /* Pods-Runner.profile.xcconfig */,
- );
- name = Pods;
- path = Pods;
- sourceTree = "";
- };
- D73912EC22F37F3D000D13A0 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 77D68B92366F60419FE029D8 /* Pods_Runner.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 33CC10EC2044A3C60003C045 /* Runner */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
- buildPhases = (
- 2E7987DC1DC14DA8A4B13BF3 /* [CP] Check Pods Manifest.lock */,
- 33CC10E92044A3C60003C045 /* Sources */,
- 33CC10EA2044A3C60003C045 /* Frameworks */,
- 33CC10EB2044A3C60003C045 /* Resources */,
- 33CC110E2044A8840003C045 /* Bundle Framework */,
- 3399D490228B24CF009A79C7 /* ShellScript */,
- 31D443903C4E40636BA59DB3 /* [CP] Embed Pods Frameworks */,
- );
- buildRules = (
- );
- dependencies = (
- 33CC11202044C79F0003C045 /* PBXTargetDependency */,
- );
- name = Runner;
- productName = Runner;
- productReference = 33CC10ED2044A3C60003C045 /* example.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 33CC10E52044A3C60003C045 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastSwiftUpdateCheck = 0920;
- LastUpgradeCheck = 0930;
- ORGANIZATIONNAME = "The Flutter Authors";
- TargetAttributes = {
- 33CC10EC2044A3C60003C045 = {
- CreatedOnToolsVersion = 9.2;
- LastSwiftMigration = 1100;
- ProvisioningStyle = Automatic;
- SystemCapabilities = {
- com.apple.Sandbox = {
- enabled = 1;
- };
- };
- };
- 33CC111A2044C6BA0003C045 = {
- CreatedOnToolsVersion = 9.2;
- ProvisioningStyle = Manual;
- };
- };
- };
- buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
- compatibilityVersion = "Xcode 8.0";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 33CC10E42044A3C60003C045;
- productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 33CC10EC2044A3C60003C045 /* Runner */,
- 33CC111A2044C6BA0003C045 /* Flutter Assemble */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 33CC10EB2044A3C60003C045 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
- 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 2E7987DC1DC14DA8A4B13BF3 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- 31D443903C4E40636BA59DB3 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- 3399D490228B24CF009A79C7 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- );
- outputFileListPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename\n";
- };
- 33CC111E2044C6BF0003C045 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- Flutter/ephemeral/FlutterInputs.xcfilelist,
- );
- inputPaths = (
- Flutter/ephemeral/tripwire,
- );
- outputFileListPaths = (
- Flutter/ephemeral/FlutterOutputs.xcfilelist,
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n";
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 33CC10E92044A3C60003C045 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
- 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
- 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
- targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- 33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
- isa = PBXVariantGroup;
- children = (
- 33CC10F52044A3C60003C045 /* Base */,
- );
- name = MainMenu.xib;
- path = Runner;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- 338D0CE9231458BD00FA5F75 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CODE_SIGN_IDENTITY = "-";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.11;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = macosx;
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- };
- name = Profile;
- };
- 338D0CEA231458BD00FA5F75 /* Profile */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
- CODE_SIGN_STYLE = Automatic;
- COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter/ephemeral",
- );
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/../Frameworks",
- );
- PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_VERSION = 5.0;
- };
- name = Profile;
- };
- 338D0CEB231458BD00FA5F75 /* Profile */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Manual;
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Profile;
- };
- 33CC10F92044A3C60003C045 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CODE_SIGN_IDENTITY = "-";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.11;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx;
- SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- };
- name = Debug;
- };
- 33CC10FA2044A3C60003C045 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CODE_SIGN_IDENTITY = "-";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.11;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = macosx;
- SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_OPTIMIZATION_LEVEL = "-O";
- };
- name = Release;
- };
- 33CC10FC2044A3C60003C045 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
- CODE_SIGN_STYLE = Automatic;
- COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter/ephemeral",
- );
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/../Frameworks",
- );
- PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 5.0;
- };
- name = Debug;
- };
- 33CC10FD2044A3C60003C045 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
- CODE_SIGN_STYLE = Automatic;
- COMBINE_HIDPI_IMAGES = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter/ephemeral",
- );
- INFOPLIST_FILE = Runner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/../Frameworks",
- );
- PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_VERSION = 5.0;
- };
- name = Release;
- };
- 33CC111C2044C6BA0003C045 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Manual;
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Debug;
- };
- 33CC111D2044C6BA0003C045 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Automatic;
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 33CC10F92044A3C60003C045 /* Debug */,
- 33CC10FA2044A3C60003C045 /* Release */,
- 338D0CE9231458BD00FA5F75 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 33CC10FC2044A3C60003C045 /* Debug */,
- 33CC10FD2044A3C60003C045 /* Release */,
- 338D0CEA231458BD00FA5F75 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 33CC111C2044C6BA0003C045 /* Debug */,
- 33CC111D2044C6BA0003C045 /* Release */,
- 338D0CEB231458BD00FA5F75 /* Profile */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 33CC10E52044A3C60003C045 /* Project object */;
-}
diff --git a/just_audio/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/just_audio/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/just_audio/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/just_audio/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/just_audio/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted file mode 100644
index df12c33..0000000
--- a/just_audio/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/just_audio/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/just_audio/example/macos/Runner.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 21a3cc1..0000000
--- a/just_audio/example/macos/Runner.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/just_audio/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/just_audio/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/just_audio/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/just_audio/example/macos/Runner/AppDelegate.swift b/just_audio/example/macos/Runner/AppDelegate.swift
deleted file mode 100644
index d53ef64..0000000
--- a/just_audio/example/macos/Runner/AppDelegate.swift
+++ /dev/null
@@ -1,9 +0,0 @@
-import Cocoa
-import FlutterMacOS
-
-@NSApplicationMain
-class AppDelegate: FlutterAppDelegate {
- override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
- return true
- }
-}
diff --git a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index a2ec33f..0000000
--- a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "images" : [
- {
- "size" : "16x16",
- "idiom" : "mac",
- "filename" : "app_icon_16.png",
- "scale" : "1x"
- },
- {
- "size" : "16x16",
- "idiom" : "mac",
- "filename" : "app_icon_32.png",
- "scale" : "2x"
- },
- {
- "size" : "32x32",
- "idiom" : "mac",
- "filename" : "app_icon_32.png",
- "scale" : "1x"
- },
- {
- "size" : "32x32",
- "idiom" : "mac",
- "filename" : "app_icon_64.png",
- "scale" : "2x"
- },
- {
- "size" : "128x128",
- "idiom" : "mac",
- "filename" : "app_icon_128.png",
- "scale" : "1x"
- },
- {
- "size" : "128x128",
- "idiom" : "mac",
- "filename" : "app_icon_256.png",
- "scale" : "2x"
- },
- {
- "size" : "256x256",
- "idiom" : "mac",
- "filename" : "app_icon_256.png",
- "scale" : "1x"
- },
- {
- "size" : "256x256",
- "idiom" : "mac",
- "filename" : "app_icon_512.png",
- "scale" : "2x"
- },
- {
- "size" : "512x512",
- "idiom" : "mac",
- "filename" : "app_icon_512.png",
- "scale" : "1x"
- },
- {
- "size" : "512x512",
- "idiom" : "mac",
- "filename" : "app_icon_1024.png",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
diff --git a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
deleted file mode 100644
index 3c4935a..0000000
Binary files a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and /dev/null differ
diff --git a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
deleted file mode 100644
index ed4cc16..0000000
Binary files a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and /dev/null differ
diff --git a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
deleted file mode 100644
index 483be61..0000000
Binary files a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and /dev/null differ
diff --git a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
deleted file mode 100644
index bcbf36d..0000000
Binary files a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and /dev/null differ
diff --git a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
deleted file mode 100644
index 9c0a652..0000000
Binary files a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and /dev/null differ
diff --git a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
deleted file mode 100644
index e71a726..0000000
Binary files a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and /dev/null differ
diff --git a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
deleted file mode 100644
index 8a31fe2..0000000
Binary files a/just_audio/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and /dev/null differ
diff --git a/just_audio/example/macos/Runner/Base.lproj/MainMenu.xib b/just_audio/example/macos/Runner/Base.lproj/MainMenu.xib
deleted file mode 100644
index 537341a..0000000
--- a/just_audio/example/macos/Runner/Base.lproj/MainMenu.xib
+++ /dev/null
@@ -1,339 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/just_audio/example/macos/Runner/Configs/AppInfo.xcconfig b/just_audio/example/macos/Runner/Configs/AppInfo.xcconfig
deleted file mode 100644
index ff69002..0000000
--- a/just_audio/example/macos/Runner/Configs/AppInfo.xcconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-// Application-level settings for the Runner target.
-//
-// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
-// future. If not, the values below would default to using the project name when this becomes a
-// 'flutter create' template.
-
-// The application's name. By default this is also the title of the Flutter window.
-PRODUCT_NAME = example
-
-// The application's bundle identifier
-PRODUCT_BUNDLE_IDENTIFIER = com.ryanheise.example
-
-// The copyright displayed in application information
-PRODUCT_COPYRIGHT = Copyright © 2020 com.ryanheise. All rights reserved.
diff --git a/just_audio/example/macos/Runner/Configs/Debug.xcconfig b/just_audio/example/macos/Runner/Configs/Debug.xcconfig
deleted file mode 100644
index 36b0fd9..0000000
--- a/just_audio/example/macos/Runner/Configs/Debug.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../../Flutter/Flutter-Debug.xcconfig"
-#include "Warnings.xcconfig"
diff --git a/just_audio/example/macos/Runner/Configs/Release.xcconfig b/just_audio/example/macos/Runner/Configs/Release.xcconfig
deleted file mode 100644
index dff4f49..0000000
--- a/just_audio/example/macos/Runner/Configs/Release.xcconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../../Flutter/Flutter-Release.xcconfig"
-#include "Warnings.xcconfig"
diff --git a/just_audio/example/macos/Runner/Configs/Warnings.xcconfig b/just_audio/example/macos/Runner/Configs/Warnings.xcconfig
deleted file mode 100644
index 42bcbf4..0000000
--- a/just_audio/example/macos/Runner/Configs/Warnings.xcconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
-GCC_WARN_UNDECLARED_SELECTOR = YES
-CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
-CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
-CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
-CLANG_WARN_PRAGMA_PACK = YES
-CLANG_WARN_STRICT_PROTOTYPES = YES
-CLANG_WARN_COMMA = YES
-GCC_WARN_STRICT_SELECTOR_MATCH = YES
-CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
-CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
-GCC_WARN_SHADOW = YES
-CLANG_WARN_UNREACHABLE_CODE = YES
diff --git a/just_audio/example/macos/Runner/DebugProfile.entitlements b/just_audio/example/macos/Runner/DebugProfile.entitlements
deleted file mode 100644
index 08c3ab1..0000000
--- a/just_audio/example/macos/Runner/DebugProfile.entitlements
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- com.apple.security.app-sandbox
-
- com.apple.security.cs.allow-jit
-
- com.apple.security.network.server
-
- com.apple.security.network.client
-
-
-
diff --git a/just_audio/example/macos/Runner/Info.plist b/just_audio/example/macos/Runner/Info.plist
deleted file mode 100644
index 4789daa..0000000
--- a/just_audio/example/macos/Runner/Info.plist
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- $(DEVELOPMENT_LANGUAGE)
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIconFile
-
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- $(FLUTTER_BUILD_NAME)
- CFBundleVersion
- $(FLUTTER_BUILD_NUMBER)
- LSMinimumSystemVersion
- $(MACOSX_DEPLOYMENT_TARGET)
- NSHumanReadableCopyright
- $(PRODUCT_COPYRIGHT)
- NSMainNibFile
- MainMenu
- NSPrincipalClass
- NSApplication
-
-
diff --git a/just_audio/example/macos/Runner/MainFlutterWindow.swift b/just_audio/example/macos/Runner/MainFlutterWindow.swift
deleted file mode 100644
index 2722837..0000000
--- a/just_audio/example/macos/Runner/MainFlutterWindow.swift
+++ /dev/null
@@ -1,15 +0,0 @@
-import Cocoa
-import FlutterMacOS
-
-class MainFlutterWindow: NSWindow {
- override func awakeFromNib() {
- let flutterViewController = FlutterViewController.init()
- let windowFrame = self.frame
- self.contentViewController = flutterViewController
- self.setFrame(windowFrame, display: true)
-
- RegisterGeneratedPlugins(registry: flutterViewController)
-
- super.awakeFromNib()
- }
-}
diff --git a/just_audio/example/macos/Runner/Release.entitlements b/just_audio/example/macos/Runner/Release.entitlements
deleted file mode 100644
index ee95ab7..0000000
--- a/just_audio/example/macos/Runner/Release.entitlements
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- com.apple.security.app-sandbox
-
- com.apple.security.network.client
-
-
-
diff --git a/just_audio/example/pubspec.lock b/just_audio/example/pubspec.lock
deleted file mode 100644
index 5ff5d96..0000000
--- a/just_audio/example/pubspec.lock
+++ /dev/null
@@ -1,306 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
- async:
- dependency: transitive
- description:
- name: async
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.5.0-nullsafety.1"
- audio_session:
- dependency: "direct main"
- description:
- name: audio_session
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.0.10"
- boolean_selector:
- dependency: transitive
- description:
- name: boolean_selector
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.1.0-nullsafety.1"
- characters:
- dependency: transitive
- description:
- name: characters
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.1.0-nullsafety.3"
- charcode:
- dependency: transitive
- description:
- name: charcode
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.2.0-nullsafety.1"
- clock:
- dependency: transitive
- description:
- name: clock
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.1.0-nullsafety.1"
- collection:
- dependency: transitive
- description:
- name: collection
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.15.0-nullsafety.3"
- convert:
- dependency: transitive
- description:
- name: convert
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.1.1"
- crypto:
- dependency: transitive
- description:
- name: crypto
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.1.5"
- cupertino_icons:
- dependency: "direct main"
- description:
- name: cupertino_icons
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.1.3"
- fake_async:
- dependency: transitive
- description:
- name: fake_async
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.2.0-nullsafety.1"
- ffi:
- dependency: transitive
- description:
- name: ffi
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.1.3"
- file:
- dependency: transitive
- description:
- name: file
- url: "https://pub.dartlang.org"
- source: hosted
- version: "5.2.1"
- flutter:
- dependency: "direct main"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_test:
- dependency: "direct dev"
- description: flutter
- source: sdk
- version: "0.0.0"
- flutter_web_plugins:
- dependency: transitive
- description: flutter
- source: sdk
- version: "0.0.0"
- intl:
- dependency: transitive
- description:
- name: intl
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.16.1"
- just_audio:
- dependency: "direct main"
- description:
- path: ".."
- relative: true
- source: path
- version: "0.6.5"
- just_audio_platform_interface:
- dependency: transitive
- description:
- path: "../../just_audio_platform_interface"
- relative: true
- source: path
- version: "2.0.0"
- just_audio_web:
- dependency: transitive
- description:
- path: "../../just_audio_web"
- relative: true
- source: path
- version: "0.2.1"
- matcher:
- dependency: transitive
- description:
- name: matcher
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.12.10-nullsafety.1"
- meta:
- dependency: transitive
- description:
- name: meta
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.3.0-nullsafety.3"
- path:
- dependency: transitive
- description:
- name: path
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.8.0-nullsafety.1"
- path_provider:
- dependency: transitive
- description:
- name: path_provider
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.6.18"
- path_provider_linux:
- dependency: transitive
- description:
- name: path_provider_linux
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.0.1+2"
- path_provider_macos:
- dependency: transitive
- description:
- name: path_provider_macos
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.0.4+4"
- path_provider_platform_interface:
- dependency: transitive
- description:
- name: path_provider_platform_interface
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.0.3"
- path_provider_windows:
- dependency: transitive
- description:
- name: path_provider_windows
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.0.4+1"
- platform:
- dependency: transitive
- description:
- name: platform
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.2.1"
- plugin_platform_interface:
- dependency: transitive
- description:
- name: plugin_platform_interface
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.0.3"
- process:
- dependency: transitive
- description:
- name: process
- url: "https://pub.dartlang.org"
- source: hosted
- version: "3.0.13"
- rxdart:
- dependency: transitive
- description:
- name: rxdart
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.24.1"
- sky_engine:
- dependency: transitive
- description: flutter
- source: sdk
- version: "0.0.99"
- source_span:
- dependency: transitive
- description:
- name: source_span
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.8.0-nullsafety.2"
- stack_trace:
- dependency: transitive
- description:
- name: stack_trace
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.10.0-nullsafety.1"
- stream_channel:
- dependency: transitive
- description:
- name: stream_channel
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.1.0-nullsafety.1"
- string_scanner:
- dependency: transitive
- description:
- name: string_scanner
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.1.0-nullsafety.1"
- term_glyph:
- dependency: transitive
- description:
- name: term_glyph
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.2.0-nullsafety.1"
- test_api:
- dependency: transitive
- description:
- name: test_api
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.2.19-nullsafety.2"
- typed_data:
- dependency: transitive
- description:
- name: typed_data
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.3.0-nullsafety.3"
- uuid:
- dependency: transitive
- description:
- name: uuid
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.2.2"
- vector_math:
- dependency: transitive
- description:
- name: vector_math
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.1.0-nullsafety.3"
- win32:
- dependency: transitive
- description:
- name: win32
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.7.3"
- xdg_directories:
- dependency: transitive
- description:
- name: xdg_directories
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.1.2"
-sdks:
- dart: ">=2.10.0-110 <2.11.0"
- flutter: ">=1.12.13+hotfix.5 <2.0.0"
diff --git a/just_audio/example/pubspec.yaml b/just_audio/example/pubspec.yaml
deleted file mode 100644
index 090431f..0000000
--- a/just_audio/example/pubspec.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-name: just_audio_example
-description: Demonstrates how to use the just_audio plugin.
-publish_to: 'none'
-
-environment:
- sdk: ">=2.7.0 <3.0.0"
-
-dependencies:
- flutter:
- sdk: flutter
- audio_session: ^0.0.10
- just_audio:
- path: ../
-
- cupertino_icons: ^0.1.2
-
-dev_dependencies:
- flutter_test:
- sdk: flutter
-
-# For information on the generic Dart part of this file, see the
-# following page: https://dart.dev/tools/pub/pubspec
-
-# The following section is specific to Flutter.
-flutter:
-
- # The following line ensures that the Material Icons font is
- # included with your application, so that you can use the icons in
- # the material Icons class.
- uses-material-design: true
-
- # To add assets to your application, add an assets section, like this:
- # assets:
- # - images/a_dot_burr.jpeg
- # - images/a_dot_ham.jpeg
-
- # An image asset can refer to one or more resolution-specific "variants", see
- # https://flutter.dev/assets-and-images/#resolution-aware.
-
- # For details regarding adding assets from package dependencies, see
- # https://flutter.dev/assets-and-images/#from-packages
-
- # To add custom fonts to your application, add a fonts section here,
- # in this "flutter" section. Each entry in this list should have a
- # "family" key with the font family name, and a "fonts" key with a
- # list giving the asset and other descriptors for the font. For
- # example:
- # fonts:
- # - family: Schyler
- # fonts:
- # - asset: fonts/Schyler-Regular.ttf
- # - asset: fonts/Schyler-Italic.ttf
- # style: italic
- # - family: Trajan Pro
- # fonts:
- # - asset: fonts/TrajanPro.ttf
- # - asset: fonts/TrajanPro_Bold.ttf
- # weight: 700
- #
- # For details regarding fonts from package dependencies,
- # see https://flutter.dev/custom-fonts/#from-packages
diff --git a/just_audio/example/test/widget_test.dart b/just_audio/example/test/widget_test.dart
deleted file mode 100644
index 0cc2e4f..0000000
--- a/just_audio/example/test/widget_test.dart
+++ /dev/null
@@ -1,27 +0,0 @@
-// This is a basic Flutter widget test.
-//
-// To perform an interaction with a widget in your test, use the WidgetTester
-// utility that Flutter provides. For example, you can send tap and scroll
-// gestures. You can also use WidgetTester to find child widgets in the widget
-// tree, read text, and verify that the values of widget properties are correct.
-
-import 'package:flutter/material.dart';
-import 'package:flutter_test/flutter_test.dart';
-
-import 'package:just_audio_example/main.dart';
-
-void main() {
- testWidgets('Verify Platform version', (WidgetTester tester) async {
- // Build our app and trigger a frame.
- await tester.pumpWidget(MyApp());
-
- // Verify that platform version is retrieved.
- expect(
- find.byWidgetPredicate(
- (Widget widget) => widget is Text &&
- widget.data.startsWith('Running on:'),
- ),
- findsOneWidget,
- );
- });
-}
diff --git a/just_audio/example/web/favicon.png b/just_audio/example/web/favicon.png
deleted file mode 100644
index 8aaa46a..0000000
Binary files a/just_audio/example/web/favicon.png and /dev/null differ
diff --git a/just_audio/example/web/icons/Icon-192.png b/just_audio/example/web/icons/Icon-192.png
deleted file mode 100644
index b749bfe..0000000
Binary files a/just_audio/example/web/icons/Icon-192.png and /dev/null differ
diff --git a/just_audio/example/web/icons/Icon-512.png b/just_audio/example/web/icons/Icon-512.png
deleted file mode 100644
index 88cfd48..0000000
Binary files a/just_audio/example/web/icons/Icon-512.png and /dev/null differ
diff --git a/just_audio/example/web/index.html b/just_audio/example/web/index.html
deleted file mode 100644
index 9b7a438..0000000
--- a/just_audio/example/web/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- example
-
-
-
-
-
-
-
-
diff --git a/just_audio/example/web/manifest.json b/just_audio/example/web/manifest.json
deleted file mode 100644
index 8c01291..0000000
--- a/just_audio/example/web/manifest.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "example",
- "short_name": "example",
- "start_url": ".",
- "display": "standalone",
- "background_color": "#0175C2",
- "theme_color": "#0175C2",
- "description": "A new Flutter project.",
- "orientation": "portrait-primary",
- "prefer_related_applications": false,
- "icons": [
- {
- "src": "icons/Icon-192.png",
- "sizes": "192x192",
- "type": "image/png"
- },
- {
- "src": "icons/Icon-512.png",
- "sizes": "512x512",
- "type": "image/png"
- }
- ]
-}
diff --git a/just_audio/pubspec.lock b/just_audio/pubspec.lock
index 67960f5..2ad6c29 100644
--- a/just_audio/pubspec.lock
+++ b/just_audio/pubspec.lock
@@ -28,7 +28,7 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
- version: "2.5.0-nullsafety.1"
+ version: "2.5.0"
audio_session:
dependency: "direct main"
description:
@@ -42,7 +42,7 @@ packages:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.1"
+ version: "2.1.0"
build:
dependency: transitive
description:
@@ -70,14 +70,14 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.3"
+ version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0"
cli_util:
dependency: transitive
description:
@@ -91,7 +91,7 @@ packages:
name: clock
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.1"
+ version: "1.1.0"
code_builder:
dependency: transitive
description:
@@ -105,7 +105,7 @@ packages:
name: collection
url: "https://pub.dartlang.org"
source: hosted
- version: "1.15.0-nullsafety.3"
+ version: "1.15.0"
convert:
dependency: transitive
description:
@@ -133,7 +133,7 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0"
ffi:
dependency: transitive
description:
@@ -190,7 +190,7 @@ packages:
name: js
url: "https://pub.dartlang.org"
source: hosted
- version: "0.6.2"
+ version: "0.6.3"
just_audio_platform_interface:
dependency: "direct main"
description:
@@ -218,14 +218,14 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.10-nullsafety.1"
+ version: "0.12.10"
meta:
dependency: "direct main"
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.3"
+ version: "1.3.0"
mockito:
dependency: "direct dev"
description:
@@ -260,7 +260,7 @@ packages:
name: path
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety.1"
+ version: "1.8.0"
path_provider:
dependency: "direct main"
description:
@@ -363,49 +363,49 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety.2"
+ version: "1.8.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
- version: "1.10.0-nullsafety.1"
+ version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.1"
+ version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.1"
+ version: "1.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety.1"
+ version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.19-nullsafety.2"
+ version: "0.2.19"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.3"
+ version: "1.3.0"
uuid:
dependency: "direct main"
description:
@@ -419,7 +419,7 @@ packages:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.3"
+ version: "2.1.0"
watcher:
dependency: transitive
description:
@@ -449,5 +449,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
- dart: ">=2.10.0 <2.11.0"
- flutter: ">=1.12.13+hotfix.5 <2.0.0"
+ dart: ">=2.12.0-0.0 <3.0.0"
+ flutter: ">=1.12.13+hotfix.5"
diff --git a/just_audio/test/just_audio_test.dart b/just_audio/test/just_audio_test.dart
deleted file mode 100644
index 6be1465..0000000
--- a/just_audio/test/just_audio_test.dart
+++ /dev/null
@@ -1,1013 +0,0 @@
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-import 'dart:math';
-import 'dart:typed_data';
-
-import 'package:flutter/services.dart';
-import 'package:flutter_test/flutter_test.dart';
-import 'package:just_audio/just_audio.dart';
-import 'package:just_audio_platform_interface/just_audio_platform_interface.dart';
-import 'package:mockito/mockito.dart';
-import 'package:plugin_platform_interface/plugin_platform_interface.dart';
-
-void main() {
- TestWidgetsFlutterBinding.ensureInitialized();
- // We need an actual HttpClient to test the proxy server.
- final overrides = MyHttpOverrides();
- HttpOverrides.global = overrides;
- HttpOverrides.runWithHttpOverrides(runTests, overrides);
-}
-
-void runTests() {
- final mock = MockJustAudio();
- JustAudioPlatform.instance = mock;
- final audioSessionChannel = MethodChannel('com.ryanheise.audio_session');
-
- void expectDuration(Duration a, Duration b, {int epsilon = 200}) {
- expect((a - b).inMilliseconds.abs(), lessThanOrEqualTo(epsilon));
- }
-
- void expectState({
- AudioPlayer player,
- Duration position,
- ProcessingState processingState,
- bool playing,
- }) {
- if (position != null) {
- expectDuration(player.position, position);
- }
- if (processingState != null) {
- expect(player.processingState, equals(processingState));
- }
- if (playing != null) {
- expect(player.playing, equals(playing));
- }
- }
-
- void checkIndices(List indices, int length) {
- expect(indices.length, length);
- final sorted = List.of(indices)..sort();
- expect(sorted, equals(List.generate(indices.length, (i) => i)));
- }
-
- setUp(() {
- audioSessionChannel.setMockMethodCallHandler((MethodCall methodCall) async {
- return null;
- });
- });
-
- tearDown(() {
- audioSessionChannel.setMockMethodCallHandler(null);
- });
-
- test('init', () async {
- final player = AudioPlayer();
- expect(player.processingState, equals(ProcessingState.idle));
- expect(player.position, equals(Duration.zero));
- //expect(player.bufferedPosition, equals(Duration.zero));
- expect(player.duration, equals(null));
- expect(player.icyMetadata, equals(null));
- expect(player.currentIndex, equals(null));
- expect(player.androidAudioSessionId, equals(null));
- expect(player.playing, equals(false));
- expect(player.volume, equals(1.0));
- expect(player.speed, equals(1.0));
- expect(player.sequence, equals(null));
- expect(player.hasNext, equals(false));
- expect(player.hasPrevious, equals(false));
- //expect(player.loopMode, equals(LoopMode.off));
- //expect(player.shuffleModeEnabled, equals(false));
- expect(player.automaticallyWaitsToMinimizeStalling, equals(true));
- player.dispose();
- });
-
- test('load', () async {
- final player = AudioPlayer();
- final duration = await player.setUrl('https://foo.foo/foo.mp3');
- expect(duration, equals(audioSourceDuration));
- expect(player.duration, equals(duration));
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.position, equals(Duration.zero));
- expect(player.currentIndex, equals(0));
- expect(player.hasNext, equals(false));
- expect(player.hasPrevious, equals(false));
- expect(player.sequence.length, equals(1));
- expect(player.playing, equals(false));
- player.dispose();
- });
-
- test('load error', () async {
- final player = AudioPlayer();
- var exception;
- try {
- await player.setUrl('https://foo.foo/404.mp3');
- exception = null;
- } catch (e) {
- exception = e;
- }
- expect(exception != null, equals(true));
- try {
- await player.setUrl('https://foo.foo/abort.mp3');
- exception = null;
- } catch (e) {
- exception = e;
- }
- expect(exception != null, equals(true));
- try {
- await player.setUrl('https://foo.foo/error.mp3');
- exception = null;
- } catch (e) {
- exception = e;
- }
- expect(exception != null, equals(true));
- player.dispose();
- });
-
- test('control', () async {
- final player = AudioPlayer();
- final duration = await player.setUrl('https://foo.foo/foo.mp3');
- final point1 = duration * 0.3;
- final stopwatch = Stopwatch();
- expectState(
- player: player,
- position: Duration.zero,
- processingState: ProcessingState.ready,
- playing: false,
- );
- await player.seek(point1);
- expectState(
- player: player,
- position: point1,
- processingState: ProcessingState.ready,
- playing: false,
- );
- player.play();
- expectState(
- player: player,
- position: point1,
- processingState: ProcessingState.ready,
- );
- await Future.delayed(Duration(milliseconds: 100));
- expectState(player: player, playing: true);
- await Future.delayed(Duration(seconds: 1));
- expectState(
- player: player,
- position: point1 + Duration(seconds: 1),
- processingState: ProcessingState.ready,
- playing: true,
- );
- await player.seek(duration - Duration(seconds: 3));
- expectState(
- player: player,
- position: duration - Duration(seconds: 3),
- processingState: ProcessingState.ready,
- playing: true,
- );
- await player.pause();
- expectState(
- player: player,
- position: duration - Duration(seconds: 3),
- processingState: ProcessingState.ready,
- playing: false,
- );
- stopwatch.reset();
- stopwatch.start();
- final playFuture = player.play();
- expectState(
- player: player,
- position: duration - Duration(seconds: 3),
- processingState: ProcessingState.ready,
- );
- expectState(player: player, playing: true);
- await playFuture;
- expectDuration(stopwatch.elapsed, Duration(seconds: 3));
- expectState(
- player: player,
- position: duration,
- processingState: ProcessingState.completed,
- playing: true,
- );
- player.dispose();
- });
-
- test('speed', () async {
- final player = AudioPlayer();
- final duration = await player.setUrl('https://foo.foo/foo.mp3');
- final period1 = Duration(seconds: 2);
- final period2 = Duration(seconds: 2);
- final speed1 = 0.75;
- final speed2 = 1.5;
- final position1 = period1 * speed1;
- final position2 = position1 + period2 * speed2;
- expectState(player: player, position: Duration.zero);
- await player.setSpeed(speed1);
- player.play();
- await Future.delayed(period1);
- expectState(player: player, position: position1);
- await player.setSpeed(speed2);
- await Future.delayed(period2);
- expectState(player: player, position: position2);
- player.dispose();
- });
-
- test('positionStream', () async {
- final player = AudioPlayer();
- final duration = await player.setUrl('https://foo.foo/foo.mp3');
- final period = Duration(seconds: 3);
- final position1 = period;
- final position2 = position1 + period;
- final speed1 = 0.75;
- final speed2 = 1.5;
- final stepDuration = period ~/ 5;
- var target = stepDuration;
- player.setSpeed(speed1);
- player.play();
- final stopwatch = Stopwatch();
- stopwatch.start();
-
- var completer = Completer();
- StreamSubscription subscription;
- subscription = player.positionStream.listen((position) {
- if (position >= position1) {
- subscription.cancel();
- completer.complete();
- } else if (position >= target) {
- expectDuration(position, stopwatch.elapsed * speed1);
- target += stepDuration;
- }
- });
- await completer.future;
- player.setSpeed(speed2);
- stopwatch.reset();
-
- target = position1 + target;
- completer = Completer();
- subscription = player.positionStream.listen((position) {
- if (position >= position2) {
- subscription.cancel();
- completer.complete();
- } else if (position >= target) {
- expectDuration(position, position1 + stopwatch.elapsed * speed2);
- target += stepDuration;
- }
- });
- await completer.future;
- player.dispose();
- });
-
- test('icyMetadata', () async {
- final player = AudioPlayer();
- expect(player.icyMetadata, equals(null));
- final duration = await player.setUrl('https://foo.foo/foo.mp3');
- player.play();
- expect(player.icyMetadata.headers.genre, equals(icyMetadata.headers.genre));
- expect((await player.icyMetadataStream.first).headers.genre,
- equals(icyMetadata.headers.genre));
- player.dispose();
- });
-
- test('proxy', () async {
- final server = MockWebServer();
- await server.start();
- final player = AudioPlayer();
- // This simulates an actual URL
- final uri = Uri.parse(
- 'http://${InternetAddress.loopbackIPv4.address}:${server.port}/proxy/foo.mp3');
- await player.setUrl('$uri', headers: {'custom-header': 'Hello'});
- // Obtain the proxy URL that the platform side should use to load the data.
- final proxyUri = Uri.parse(player.icyMetadata.info.url);
- // Simulate the platform side requesting the data.
- final request = await HttpClient().getUrl(proxyUri);
- final response = await request.close();
- final responseText = await response.transform(utf8.decoder).join();
- expect(response.statusCode, equals(HttpStatus.ok));
- expect(responseText, equals('Hello'));
- expect(response.headers.value(HttpHeaders.contentTypeHeader),
- equals('audio/mock'));
- await server.stop();
- });
-
- test('proxy0.9', () async {
- final server = MockWebServer();
- await server.start();
- final player = AudioPlayer();
- // This simulates an actual URL
- final uri = Uri.parse(
- 'http://${InternetAddress.loopbackIPv4.address}:${server.port}/proxy0.9/foo.mp3');
- await player.setUrl('$uri');
- // Obtain the proxy URL that the platform side should use to load the data.
- final proxyUri = Uri.parse(player.icyMetadata.info.url);
- // Simulate the platform side requesting the data.
- final socket = await Socket.connect(proxyUri.host, proxyUri.port);
- //final socket = await Socket.connect(uri.host, uri.port);
- socket.write('GET ${uri.path} HTTP/1.0\n\n');
- await socket.flush();
- final responseText = await socket
- .transform(Converter.castFrom, String, Uint8List, dynamic>(
- utf8.decoder))
- .join();
- await socket.close();
- expect(responseText, equals('Hello'));
- await server.stop();
- });
-
- test('sequence', () async {
- final source1 = ConcatenatingAudioSource(children: [
- LoopingAudioSource(
- count: 2,
- child: ClippingAudioSource(
- start: Duration(seconds: 60),
- end: Duration(seconds: 65),
- child: AudioSource.uri(Uri.parse("https://foo.foo/foo.mp3")),
- tag: 'a',
- ),
- ),
- AudioSource.uri(
- Uri.parse("https://bar.bar/bar.mp3"),
- tag: 'b',
- ),
- AudioSource.uri(
- Uri.parse("https://baz.baz/baz.mp3"),
- tag: 'c',
- ),
- ]);
- expect(source1.sequence.map((s) => s.tag as String).toList(),
- equals(['a', 'a', 'b', 'c']));
- final source2 = ConcatenatingAudioSource(children: []);
- final player = AudioPlayer();
- await player.setAudioSource(source2);
- expect(source2.sequence.length, equals(0));
- await source2
- .add(AudioSource.uri(Uri.parse('https://b.b/b.mp3'), tag: 'b'));
- await source2.insert(
- 0, AudioSource.uri(Uri.parse('https://a.a/a.mp3'), tag: 'a'));
- await source2.insert(
- 2, AudioSource.uri(Uri.parse('https://c.c/c.mp3'), tag: 'c'));
- await source2.addAll([
- AudioSource.uri(Uri.parse('https://d.d/d.mp3'), tag: 'd'),
- AudioSource.uri(Uri.parse('https://e.e/e.mp3'), tag: 'e'),
- ]);
- await source2.insertAll(3, [
- AudioSource.uri(Uri.parse('https://e.e/e.mp3'), tag: 'e'),
- AudioSource.uri(Uri.parse('https://f.f/f.mp3'), tag: 'f'),
- ]);
- expect(source2.sequence.map((s) => s.tag as String),
- equals(['a', 'b', 'c', 'e', 'f', 'd', 'e']));
- await source2.removeAt(0);
- expect(source2.sequence.map((s) => s.tag as String),
- equals(['b', 'c', 'e', 'f', 'd', 'e']));
- await source2.move(3, 2);
- expect(source2.sequence.map((s) => s.tag as String),
- equals(['b', 'c', 'f', 'e', 'd', 'e']));
- await source2.move(2, 3);
- expect(source2.sequence.map((s) => s.tag as String),
- equals(['b', 'c', 'e', 'f', 'd', 'e']));
- await source2.removeRange(0, 2);
- expect(source2.sequence.map((s) => s.tag as String),
- equals(['e', 'f', 'd', 'e']));
- await source2.removeAt(3);
- expect(
- source2.sequence.map((s) => s.tag as String), equals(['e', 'f', 'd']));
- await source2.removeRange(1, 3);
- expect(source2.sequence.map((s) => s.tag as String), equals(['e']));
- await source2.clear();
- expect(source2.sequence.map((s) => s.tag as String), equals([]));
- });
-
- test('detect', () async {
- expect(AudioSource.uri(Uri.parse('https://a.a/a.mpd')) is DashAudioSource,
- equals(true));
- expect(AudioSource.uri(Uri.parse('https://a.a/a.m3u8')) is HlsAudioSource,
- equals(true));
- expect(
- AudioSource.uri(Uri.parse('https://a.a/a.mp3'))
- is ProgressiveAudioSource,
- equals(true));
- expect(AudioSource.uri(Uri.parse('https://a.a/a#.mpd')) is DashAudioSource,
- equals(true));
- });
-
- test('shuffle order', () async {
- final shuffleOrder1 = DefaultShuffleOrder(random: Random(1001));
- checkIndices(shuffleOrder1.indices, 0);
- //expect(shuffleOrder1.indices, equals([]));
- shuffleOrder1.insert(0, 5);
- //expect(shuffleOrder1.indices, equals([3, 0, 2, 4, 1]));
- checkIndices(shuffleOrder1.indices, 5);
- shuffleOrder1.insert(3, 2);
- checkIndices(shuffleOrder1.indices, 7);
- shuffleOrder1.insert(0, 2);
- checkIndices(shuffleOrder1.indices, 9);
- shuffleOrder1.insert(9, 2);
- checkIndices(shuffleOrder1.indices, 11);
-
- final indices1 = List.of(shuffleOrder1.indices);
- shuffleOrder1.shuffle();
- expect(shuffleOrder1.indices, isNot(indices1));
- checkIndices(shuffleOrder1.indices, 11);
- final indices2 = List.of(shuffleOrder1.indices);
- shuffleOrder1.shuffle(initialIndex: 5);
- expect(shuffleOrder1.indices[0], equals(5));
- expect(shuffleOrder1.indices, isNot(indices2));
- checkIndices(shuffleOrder1.indices, 11);
-
- shuffleOrder1.removeRange(4, 6);
- checkIndices(shuffleOrder1.indices, 9);
- shuffleOrder1.removeRange(0, 2);
- checkIndices(shuffleOrder1.indices, 7);
- shuffleOrder1.removeRange(5, 7);
- checkIndices(shuffleOrder1.indices, 5);
- shuffleOrder1.removeRange(0, 5);
- checkIndices(shuffleOrder1.indices, 0);
-
- shuffleOrder1.insert(0, 5);
- checkIndices(shuffleOrder1.indices, 5);
- shuffleOrder1.clear();
- checkIndices(shuffleOrder1.indices, 0);
- });
-
- test('shuffle', () async {
- AudioSource createSource() => ConcatenatingAudioSource(
- shuffleOrder: DefaultShuffleOrder(random: Random(1001)),
- children: [
- LoopingAudioSource(
- count: 2,
- child: ClippingAudioSource(
- start: Duration(seconds: 60),
- end: Duration(seconds: 65),
- child: AudioSource.uri(Uri.parse("https://foo.foo/foo.mp3")),
- tag: 'a',
- ),
- ),
- AudioSource.uri(
- Uri.parse("https://bar.bar/bar.mp3"),
- tag: 'b',
- ),
- AudioSource.uri(
- Uri.parse("https://baz.baz/baz.mp3"),
- tag: 'c',
- ),
- ClippingAudioSource(
- child: AudioSource.uri(
- Uri.parse("https://baz.baz/baz.mp3"),
- tag: 'd',
- ),
- ),
- ],
- );
- final source1 = createSource();
- //expect(source1.shuffleIndices, [4, 0, 1, 3, 2]);
- checkIndices(source1.shuffleIndices, 5);
- expect(source1.shuffleIndices.skipWhile((i) => i != 0).skip(1).first,
- equals(1));
- final player1 = AudioPlayer();
- await player1.setAudioSource(source1);
- checkIndices(player1.shuffleIndices, 5);
- expect(player1.shuffleIndices.first, equals(0));
- await player1.seek(Duration.zero, index: 3);
- await player1.shuffle();
- checkIndices(player1.shuffleIndices, 5);
- expect(player1.shuffleIndices.first, equals(3));
-
- final source2 = createSource();
- final player2 = AudioPlayer();
- await player2.setAudioSource(source2, initialIndex: 3);
- checkIndices(player2.shuffleIndices, 5);
- expect(player2.shuffleIndices.first, equals(3));
- });
-
- test('stop', () async {
- final source = ConcatenatingAudioSource(
- shuffleOrder: DefaultShuffleOrder(random: Random(1001)),
- children: [
- AudioSource.uri(
- Uri.parse("https://bar.bar/foo.mp3"),
- tag: 'foo',
- ),
- AudioSource.uri(
- Uri.parse("https://baz.baz/bar.mp3"),
- tag: 'bar',
- ),
- ],
- );
- final player = AudioPlayer();
- expect(player.processingState, ProcessingState.idle);
- await player.setAudioSource(source, preload: false);
- expect(player.processingState, ProcessingState.idle);
- await player.load();
- expect(player.processingState, ProcessingState.ready);
- await player.seek(Duration(seconds: 5), index: 1);
- await player.setVolume(0.5);
- await player.setSpeed(0.7);
- await player.setShuffleModeEnabled(true);
- await player.setLoopMode(LoopMode.one);
- await player.stop();
- expect(player.processingState, ProcessingState.idle);
- expect(player.position, Duration(seconds: 5));
- expect(player.volume, 0.5);
- expect(player.speed, 0.7);
- expect(player.shuffleModeEnabled, true);
- expect(player.loopMode, LoopMode.one);
- await player.load();
- expect(player.processingState, ProcessingState.ready);
- expect(player.position, Duration(seconds: 5));
- expect(player.volume, 0.5);
- expect(player.speed, 0.7);
- expect(player.shuffleModeEnabled, true);
- expect(player.loopMode, LoopMode.one);
- });
-
- test('play-load', () async {
- for (var delayMs in [0, 100]) {
- final player = AudioPlayer();
- player.play();
- if (delayMs != 0) {
- await Future.delayed(Duration(milliseconds: delayMs));
- }
- expect(player.playing, equals(true));
- expect(player.processingState, equals(ProcessingState.idle));
- await player.setUrl('https://bar.bar/foo.mp3');
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.playing, equals(true));
- expectDuration(player.position, Duration.zero);
- await Future.delayed(Duration(seconds: 1));
- expectDuration(player.position, Duration(seconds: 1));
- await player.dispose();
- }
- });
-
- test('play-set', () async {
- for (var delayMs in [0, 100]) {
- final player = AudioPlayer();
- player.play();
- if (delayMs != 0) {
- await Future.delayed(Duration(milliseconds: delayMs));
- }
- expect(player.playing, equals(true));
- expect(player.processingState, equals(ProcessingState.idle));
- await player.setUrl('https://bar.bar/foo.mp3', preload: false);
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.playing, equals(true));
- expectDuration(player.position, Duration.zero);
- await Future.delayed(Duration(seconds: 1));
- expectDuration(player.position, Duration(seconds: 1));
- await player.dispose();
- }
- });
-
- test('set-play', () async {
- final player = AudioPlayer();
- await player.setUrl('https://bar.bar/foo.mp3', preload: false);
- expect(player.processingState, equals(ProcessingState.idle));
- expect(player.playing, equals(false));
- player.play();
- expect(player.playing, equals(true));
- await player.processingStateStream
- .firstWhere((state) => state == ProcessingState.ready);
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.playing, equals(true));
- expectDuration(player.position, Duration.zero);
- await Future.delayed(Duration(seconds: 1));
- expectDuration(player.position, Duration(seconds: 1));
- await player.dispose();
- });
-
- test('set-set', () async {
- final player = AudioPlayer();
- await player.setAudioSource(
- ConcatenatingAudioSource(
- children: [
- AudioSource.uri(Uri.parse('https://bar.bar/foo.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/bar.mp3')),
- ],
- ),
- preload: false,
- );
- expect(player.processingState, equals(ProcessingState.idle));
- expect(player.sequence.length, equals(2));
- expect(player.playing, equals(false));
- await player.setAudioSource(
- ConcatenatingAudioSource(
- children: [
- AudioSource.uri(Uri.parse('https://bar.bar/foo.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/bar.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/baz.mp3')),
- ],
- ),
- preload: false,
- );
- expect(player.processingState, equals(ProcessingState.idle));
- expect(player.sequence.length, equals(3));
- expect(player.playing, equals(false));
- await player.dispose();
- });
-
- test('load-load', () async {
- final player = AudioPlayer();
- await player.setAudioSource(
- ConcatenatingAudioSource(
- children: [
- AudioSource.uri(Uri.parse('https://bar.bar/foo.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/bar.mp3')),
- ],
- ),
- );
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.sequence.length, equals(2));
- expect(player.playing, equals(false));
- await player.setAudioSource(
- ConcatenatingAudioSource(
- children: [
- AudioSource.uri(Uri.parse('https://bar.bar/foo.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/bar.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/baz.mp3')),
- ],
- ),
- );
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.sequence.length, equals(3));
- expect(player.playing, equals(false));
- await player.dispose();
- });
-
- test('load-set-load', () async {
- final player = AudioPlayer();
- await player.setAudioSource(
- ConcatenatingAudioSource(
- children: [
- AudioSource.uri(Uri.parse('https://bar.bar/foo.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/bar.mp3')),
- ],
- ),
- );
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.sequence.length, equals(2));
- expect(player.playing, equals(false));
- await player.setAudioSource(
- ConcatenatingAudioSource(
- children: [
- AudioSource.uri(Uri.parse('https://bar.bar/foo.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/bar.mp3')),
- AudioSource.uri(Uri.parse('https://bar.bar/baz.mp3')),
- ],
- ),
- preload: false,
- );
- expect(player.processingState, equals(ProcessingState.idle));
- expect(player.sequence.length, equals(3));
- expect(player.playing, equals(false));
- await player.load();
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.sequence.length, equals(3));
- expect(player.playing, equals(false));
- await player.dispose();
- });
-
- test('play-load-load', () async {
- final player = AudioPlayer();
- player.play();
- await player.setUrl('https://bar.bar/foo.mp3');
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.playing, equals(true));
- expectDuration(player.position, Duration(seconds: 0));
- await Future.delayed(Duration(seconds: 1));
- expectDuration(player.position, Duration(seconds: 1));
- await player.setUrl('https://bar.bar/bar.mp3');
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.playing, equals(true));
- expectDuration(player.position, Duration(seconds: 0));
- await Future.delayed(Duration(seconds: 1));
- expectDuration(player.position, Duration(seconds: 1));
- await player.dispose();
- });
-
- test('play-load-set-play-load', () async {
- final player = AudioPlayer();
- player.play();
- await player.setUrl('https://bar.bar/foo.mp3');
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.playing, equals(true));
- expectDuration(player.position, Duration(seconds: 0));
- await Future.delayed(Duration(seconds: 1));
- expectDuration(player.position, Duration(seconds: 1));
- player.pause();
- expect(player.playing, equals(false));
- await player.setUrl('https://bar.bar/bar.mp3', preload: false);
- expect(player.processingState, equals(ProcessingState.idle));
- expect(player.playing, equals(false));
- // TODO: Decide whether we want player.position to be null here.
- expectDuration(player.position ?? Duration.zero, Duration.zero);
- await player.load();
- expect(player.processingState, equals(ProcessingState.ready));
- expect(player.playing, equals(false));
- expectDuration(player.position, Duration(seconds: 0));
- player.play();
- expect(player.playing, equals(true));
- expectDuration(player.position, Duration(seconds: 0));
- await Future.delayed(Duration(seconds: 1));
- expectDuration(player.position, Duration(seconds: 1));
- await player.dispose();
- });
-
- test('quick-reactivate', () async {
- final player = AudioPlayer();
- await player.setUrl('https://bar.bar/foo.mp3');
- player.stop();
- await player.setUrl('https://bar.bar/foo.mp3');
- });
-}
-
-class MockJustAudio extends Mock
- with MockPlatformInterfaceMixin
- implements JustAudioPlatform {
- final _players = {};
-
- @override
- Future init(InitRequest request) async {
- if (_players.containsKey(request.id))
- throw PlatformException(
- code: "error",
- message: "Platform player ${request.id} already exists");
- final player = MockAudioPlayer(request.id);
- _players[request.id] = player;
- return player;
- }
-
- @override
- Future disposePlayer(
- DisposePlayerRequest request) async {
- _players[request.id].dispose(DisposeRequest());
- _players.remove(request.id);
- return DisposePlayerResponse();
- }
-}
-
-const audioSourceDuration = Duration(minutes: 2);
-
-final icyMetadata = IcyMetadata(
- headers: IcyHeaders(
- url: 'url',
- genre: 'Genre',
- metadataInterval: 3,
- bitrate: 100,
- isPublic: true,
- name: 'name',
- ),
- info: IcyInfo(
- title: 'title',
- url: 'url',
- ),
-);
-
-final icyMetadataMessage = IcyMetadataMessage(
- headers: IcyHeadersMessage(
- url: 'url',
- genre: 'Genre',
- metadataInterval: 3,
- bitrate: 100,
- isPublic: true,
- name: 'name',
- ),
- info: IcyInfoMessage(
- title: 'title',
- url: 'url',
- ),
-);
-
-class MockAudioPlayer implements AudioPlayerPlatform {
- final String _id;
- final eventController = StreamController();
- AudioSourceMessage _audioSource;
- ProcessingStateMessage _processingState = ProcessingStateMessage.idle;
- Duration _updatePosition = Duration.zero;
- DateTime _updateTime = DateTime.now();
- Duration _duration = audioSourceDuration;
- int _currentIndex;
- int _index;
- var _playing = false;
- var _speed = 1.0;
- var _volume = 1.0;
- var _loopMode = LoopModeMessage.off;
- var _shuffleModeEnabled = false;
- Completer _playCompleter;
- Timer _playTimer;
-
- MockAudioPlayer(String id) : this._id = id;
-
- @override
- String get id => _id;
-
- @override
- Stream get playbackEventMessageStream =>
- eventController.stream;
-
- @override
- Future load(LoadRequest request) async {
- final audioSource = request.audioSourceMessage;
- if (audioSource is UriAudioSourceMessage) {
- if (audioSource.uri.contains('abort')) {
- throw PlatformException(code: 'abort', message: 'Failed to load URL');
- } else if (audioSource.uri.contains('404')) {
- throw PlatformException(code: '404', message: 'Not found');
- } else if (audioSource.uri.contains('error')) {
- throw PlatformException(code: 'error', message: 'Unknown error');
- }
- }
- _audioSource = audioSource;
- _index = request.initialIndex ?? 0;
- // Simulate loading time.
- await Future.delayed(Duration(milliseconds: 100));
- _setPosition(request.initialPosition ?? Duration.zero);
- _processingState = ProcessingStateMessage.ready;
- _broadcastPlaybackEvent();
- return LoadResponse(duration: _duration);
- }
-
- @override
- Future play(PlayRequest request) async {
- if (_playing) return PlayResponse();
- _playing = true;
- _playTimer = Timer(_remaining, () {
- _setPosition(_position);
- _processingState = ProcessingStateMessage.completed;
- _broadcastPlaybackEvent();
- _playCompleter?.complete();
- });
- _playCompleter = Completer();
- _broadcastPlaybackEvent();
- await _playCompleter.future;
- return PlayResponse();
- }
-
- @override
- Future pause(PauseRequest request) async {
- if (!_playing) return PauseResponse();
- _playing = false;
- _playTimer?.cancel();
- _playCompleter?.complete();
- _setPosition(_position);
- _broadcastPlaybackEvent();
- return PauseResponse();
- }
-
- @override
- Future seek(SeekRequest request) async {
- _setPosition(request.position);
- _index = request.index;
- _broadcastPlaybackEvent();
- return SeekResponse();
- }
-
- @override
- Future setAndroidAudioAttributes(
- SetAndroidAudioAttributesRequest request) async {
- return SetAndroidAudioAttributesResponse();
- }
-
- @override
- Future
- setAutomaticallyWaitsToMinimizeStalling(
- SetAutomaticallyWaitsToMinimizeStallingRequest request) async {
- return SetAutomaticallyWaitsToMinimizeStallingResponse();
- }
-
- @override
- Future setLoopMode(SetLoopModeRequest request) async {
- _loopMode = request.loopMode;
- return SetLoopModeResponse();
- }
-
- @override
- Future setShuffleMode(
- SetShuffleModeRequest request) async {
- _shuffleModeEnabled = request.shuffleMode == ShuffleModeMessage.all;
- return SetShuffleModeResponse();
- }
-
- @override
- Future setShuffleOrder(
- SetShuffleOrderRequest request) async {
- return SetShuffleOrderResponse();
- }
-
- @override
- Future setSpeed(SetSpeedRequest request) async {
- _speed = request.speed;
- _setPosition(_position);
- return SetSpeedResponse();
- }
-
- @override
- Future setVolume(SetVolumeRequest request) async {
- _volume = request.volume;
- return SetVolumeResponse();
- }
-
- @override
- Future dispose(DisposeRequest request) async {
- _processingState = ProcessingStateMessage.idle;
- _broadcastPlaybackEvent();
- return DisposeResponse();
- }
-
- @override
- Future concatenatingInsertAll(
- ConcatenatingInsertAllRequest request) async {
- // TODO
- return ConcatenatingInsertAllResponse();
- }
-
- @override
- Future concatenatingMove(
- ConcatenatingMoveRequest request) async {
- // TODO
- return ConcatenatingMoveResponse();
- }
-
- @override
- Future concatenatingRemoveRange(
- ConcatenatingRemoveRangeRequest request) async {
- // TODO
- return ConcatenatingRemoveRangeResponse();
- }
-
- _broadcastPlaybackEvent() {
- String url;
- if (_audioSource is UriAudioSourceMessage) {
- // Not sure why this cast is necessary...
- url = (_audioSource as UriAudioSourceMessage).uri.toString();
- }
- eventController.add(PlaybackEventMessage(
- processingState: _processingState,
- updatePosition: _updatePosition,
- updateTime: _updateTime,
- bufferedPosition: _position ?? Duration.zero,
- icyMetadata: IcyMetadataMessage(
- headers: IcyHeadersMessage(
- url: url,
- genre: 'Genre',
- metadataInterval: 3,
- bitrate: 100,
- isPublic: true,
- name: 'name',
- ),
- info: IcyInfoMessage(
- title: 'title',
- url: url,
- ),
- ),
- duration: _duration,
- currentIndex: _index,
- androidAudioSessionId: null,
- ));
- }
-
- Duration get _position {
- if (_playing && _processingState == ProcessingStateMessage.ready) {
- final result =
- _updatePosition + (DateTime.now().difference(_updateTime)) * _speed;
- return _duration == null || result <= _duration ? result : _duration;
- } else {
- return _updatePosition;
- }
- }
-
- Duration get _remaining => (_duration - _position) * (1 / _speed);
-
- void _setPosition(Duration position) {
- _updatePosition = position;
- _updateTime = DateTime.now();
- }
-}
-
-class MockWebServer {
- HttpServer _server;
- int get port => _server.port;
-
- Future start() async {
- _server = await HttpServer.bind(InternetAddress.loopbackIPv4, 0);
- _server.listen((request) async {
- final response = request.response;
- final body = utf8.encode('Hello');
- if (request.uri.path == '/proxy0.9/foo.mp3') {
- final clientSocket =
- await request.response.detachSocket(writeHeaders: false);
- clientSocket.add(body);
- await clientSocket.flush();
- await clientSocket.close();
- } else {
- response.contentLength = body.length;
- response.statusCode = HttpStatus.ok;
- response.headers.set(HttpHeaders.contentTypeHeader, 'audio/mock');
- response.add(body);
- await response.flush();
- await response.close();
- }
- });
- }
-
- Future stop() => _server.close();
-}
-
-class MyHttpOverrides extends HttpOverrides {}