ar_core
用於在應用程式中新增擴增實境的 Flutter 插件 - 支援 iOS 與 Android 裝置上的即時相機與物件放置
適用於 Android 與 iOS 的完整增強實境解決方案
{"sdk":"flutter"}^0.9.4+16{"sdk":"flutter"}以下為英文專案原文快照,最新內容請造訪 GitHub。
ar_core is an augmented reality mobile application kit for mobile devices that enables the creation of augmented reality applications.
Many thanks to Arslan Raza for the ar_core, he served as a great basis and starting point for this project.
Add the Flutter package to your project by running:
flutter pub add ar_core
Or manually add this to your pubspec.yaml file (and run flutter pub get):
dependencies:
ar_core: ^0.0.1
The camera plugin functionality works on iOS 10.0 or higher. If compiling for any version lower than 10.0, make sure to programmatically check the version of iOS running on the device before using any camera plugin features. The device_info_plus plugin, for example, can be used to check the iOS version.
Add two rows to the ios/Runner/Info.plist:
Privacy - Camera Usage Description and a usage description.Privacy - Microphone Usage Description and a usage description.Or in text format add the key:
<key>NSCameraUsageDescription</key>
<string>Can I use the camera please?</string>
<key>NSMicrophoneUsageDescription</key>
<string>Can I use the mic please?</string>
Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle file.
minSdkVersion 21
It's important to note that the MediaRecorder class is not working properly on emulators, as stated in the documentation: https://developer.android.com/reference/android/media/MediaRecorder. Specifically, when recording a video with sound enabled and trying to play it back, the duration won't be correct and you will only see the first frame.
Add this to your code:
import 'package:ar_core/ar_core.dart';
Replace your Scaffold to Augmented(), and it will handle all your view. if you want to pass an image just pass an image as a constructor.
#Write this code in main
import 'package:camera/camera.dart';
import 'package:flutter/material.dart';
List<CameraDescription> cameras = [];
Future<void> main() async {
try {
WidgetsFlutterBinding.ensureInitialized();
cameras = await availableCameras();
} on CameraException catch (e) {
print(e.description);
}
runApp(const MyApp());
}
class AugmentedReality extends StatefulWidget {
const AugmentedReality({Key? key}) : super(key: key);
@override
_AugmentedRealityState createState() => _AugmentedRealityState();
}
class _AugmentedRealityState extends State<AugmentedReality> {
@override
Widget build(BuildContext context) {
return Augmented(
/// Provide Network Image Link to add your object
image: 'https://freepngimg.com/static/img/cat/hair.png'
);
}
}