搜索插件、代码仓与 APP 分类

插件详情v1.0.1

flutter_sensors

一个用于访问设备可用传感器的Flutter插件。

AndroidiOS
近 30 天下载
124
喜欢数
43
Pub 分数
130

安装插件

flutter pub add flutter_sensors

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

flutter_sensors 是一个 Flutter 插件,可提供对设备内置传感器(如加速度计、陀螺仪和磁力计)的访问。它使开发者能够从 Android 和 iOS 设备收集实时运动和方向数据。该插件提供了一个简单且一致的 API 来监听传感器事件,非常适合需要追踪运动或基于设备运动创建交互体验的应用程序。它与 Flutter 的响应式框架无缝集成,可高效处理传感器流。

适合场景

  • 基于运动的游戏控制
  • 健身与活动追踪
  • 增强现实应用
  • 设备方向检测
  • 交互式 UI 元素

主要特点

  • 实时传感器数据流
  • 支持加速度计、陀螺仪和磁力计
  • 跨平台兼容性(Android 和 iOS)
  • 基于流的 API 用于响应式编程
  • 简单的事件驱动接口

适合对象

  • 开发运动敏感应用的开发者
  • 需要设备方向感知的应用程序
  • 互动且沉浸式的用户体验
  • 可穿戴设备和健身技术集成

使用建议

  • 需要在 Android 上具有适当的权限
  • 持续传感器轮询可能导致电池用量增加
  • 数据准确性取决于设备硬件
  • 不适合高精度工业应用

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

native_video_view

A video player widget displayed using the platform native player (VideoView in Android and AVPlayer in iOS).

example_gif

Disclaimer

This plugin uses VideoView because in some devices the ExoPlayer plugin is not working correctly (due to decoders or something) and VideoView is a reasonable alternative. In iOS is sorta similar to Google's video_player so you should use their plugin if you want a player for iOS only.

Installation

First you need to add the dependency in your pubspec.yaml.

native_video_view: ^0.3.0

Then import the plugin in the .dart file you want to use it.

import 'package:native_video_view/native_video_view.dart';
Android

You need to add the necessary permissions to play the videos. If you are playing videos from the internet, you need to add the internet permissions in your AndroidManifest.xml located in the android folder in your project.

<uses-permission android:name="android.permission.INTERNET" />

If you are going to play videos from the device storage, you need to add the storage permissions.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
iOS

In this platform you need to configure some options in your Info.plist file. This file is located in <project-root>/ios/Runner/ Info.plist.

First add the embedded views configuration.

<key>io.flutter.embedded_views_preview</key>
<true/>

If you want to play videos from the internet add the following.

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

Usage

This plugin has a widget to use in your dart files. Example:

@override
Widget build(BuildContext context) {
return Scaffold(
    appBar: AppBar(
    title: const Text('Plugin example app'),
    ),
    body: Container(
    alignment: Alignment.center,
    child: NativeVideoView(
        keepAspectRatio: true,
        showMediaController: true,
        onCreated: (controller) {
          controller.setVideoSource(
            'assets/example.mp4',
            sourceType: VideoSourceType.asset,
          );
        },
        onPrepared: (controller, info) {
          controller.play();
        },
        onError: (controller, what, extra, message) {
          print('Player Error ($what | $extra | $message)');
        },
        onCompletion: (controller) {
          print('Video completed');
        },
        onProgress: (progress, duration) {
          print('$progress | $duration');
        },
      ),
    ),
  );
}

keepAspectRatio: Wraps the video player in a AspectRatio widget. The aspect ratio is calculated once the video is loaded. By default the aspect ratio is 4/3.

showMediaController: Shows a default media controller overlay in the video player widget.

enableVolumeControl: Adds an option in the MediaController to control the volume of the playback.

useExoPlayer: Use ExoPlayer as the underlying player. Android Only.

autoHide: Automatically hides the media controller after a few seconds of no use. Default is true.

autoHideTime: The time after which the controller is hidden. Default is 2 seconds.

onCreated: (required) Callback called when the PlatformView is finished creating.

onPrepared: (required) Callback called when the player has finished loading the video.

onCompletion: (required) Callback called when the video reached the end.

onError: Callback called if an error occurs in the player.

onProgress: Callback used to notify progress in the video playback.

AudioFocus

To make the player get the audio focus of the system you just have to use the setting requestAudioFocus when setting the video source. See the example below.

@override
Widget build(BuildContext context) {
    return NativeVideoView(
       onCreated: (controller) {
         controller.setVideoSource(
             'assets/example.mp4',
             requestAudioFocus: true,
             sourceType: VideoSourceType.asset,
         );
       },
    );
}

所属分类

源码仓库

使用此插件的项目