小编Ahm*_*med的帖子

原生Android WebRTC应用程序开发

我正在尝试使用WebRtc Native apis创建一个用于视频聊天和消息传递的Android应用程序.我已经通过几个链接,发现android的大部分文档都很模糊,特别是如果你不知道从哪里开始.我按照以下链接,

https://webrtc.org/native-code/android/#

https://www.chromium.org/developers/how-tos/android-build-instructions

但上面提到的链接没有任何意义,因为我想开发一个Android应用程序,这些链接建议下载铬然后构建它.我知道最终的结果将是一个apk,但如果我想编码自己怎么办.我也查看了pubnub和OpenTokRtc,但我也不想使用某些elses信令服务(以及pub和sub键).我尝试了以下链接,

https://github.com/pristineio/webrtc-build-scripts

但对于WebRTC的新手而言,这似乎有点不完整,因为它建议通过以下命令获取WebRtc,

# Pull WebRTC
get_webrtc
Run Code Online (Sandbox Code Playgroud)

最后我尝试了以下链接,

http://simonguest.com/2013/08/06/building-a-webrtc-client-for-android/

但是本教程的问题在于它根本没有更新.Libjingle现在已经转移到github,我不知道如何使用gclient从github获取libjingle.

我的这场斗争是一场灾难.任何人都可以帮我一些更新的文档或教程,我可以用它来了解我需要使用webRTC native apis开发应用程序到底需要什么?请不要给我任何OpenTokRtc或PubNub的链接.

谢谢

android libjingle webrtc signaling openwebrtc

26
推荐指数
3
解决办法
2万
查看次数

React Hook Form:提交带有嵌套组件的表单或提取嵌套组件的字段进行提交

我有一个包含多个组件的表单(每个组件都是基于功能或基于类的组件),其中包含多个输入字段或单选按钮。当我提交表单时,我要么想要提交嵌套在组件中的字段以及表单数据,要么我应该能够提取字段数据然后提交它们(不确定哪种方法是最好的,为什么?)。我怎样才能实现这个目标?

代码 :

import React from "react";
import { useForm } from "react-hook-form";

export default function TestComponent() {
  const { register, handleSubmit, errors } = useForm();
  const onSubmit = data => console.log(data);

  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <label htmlFor="name">Name</label>
      <input type="text" id="name" name="name" ref={register({ required: true, maxLength: 30 })} />
      {errors.name && errors.name.type === "required" && <span>This is required</span>}
      {errors.name && errors.name.type === "maxLength" && <span>Max length exceeded</span> }
      <NestedComponent1 />
      <NestedComponent2 />
      <input type="submit" />
    </form>
  );
}

function NestedComponent1() …
Run Code Online (Sandbox Code Playgroud)

javascript nested reactjs react-component react-hook-form

25
推荐指数
2
解决办法
4万
查看次数

在ViewFlipper或ViewPager中滑动图像

我想一次显示一张图片.在滑动时,我想用滑动效果更改我的图像.我读到了ViewPager和ViewFlipper.我甚至有一个使用ViewFlipper这样做的例子.只需要正确解释ViewFlipper的使用位置以及ViewPager的使用位置.在我看来,当你想要刷一堆具有某些功能的片段而不是只是刷一些图像时,更有可能使用ViewPager.

但是,如果有人认为应该使用ViewPager而不是ViewFlipper只是为了扫描一堆图像,请简要说明原因?为什么一个人应该使用ViewPager而不是ViewFlipper.哪一个应该更有效率?那么这两个目的是什么?你能举例说明(代码)刷图像吗?

performance android viewflipper android-2.2-froyo android-viewpager

14
推荐指数
1
解决办法
9103
查看次数

Android屏幕上的浮动视图

我试图制作一个浮动视图,用户可以在屏幕上拖动.

我们的想法是启动一项服务,然后在屏幕上膨胀视图.

但是有一个问题,而不是将事件属于自己,它需要所有用户输入事件.

这是我的代码:manifest.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.floatandroidpractice"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.floatandroidpractice.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name="com.example.floatandroidpractice.WalkingIconService" />
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

浮动视图可以拖动:

package com.example.floatandroidpractice;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;

public class littleIconView extends View {
    private float viewX;
    private float viewY;
    private Paint mPaint;
    private Bitmap …
Run Code Online (Sandbox Code Playgroud)

android view floating android-custom-view

12
推荐指数
1
解决办法
2万
查看次数

了解Kotlin产量

我在Kotlin中没有看到关键字Yield的明确定义。

上面链接中的示例并未提及太多,但以下内容中,

val sequence = sequence {
    val start = 0
    // yielding a single value
    yield(start)
    // yielding an iterable
    yieldAll(1..5 step 2)
    // yielding an infinite sequence
    yieldAll(generateSequence(8) { it * 3 })
}

println(sequence.take(7).toList()) // [0, 1, 3, 5, 8, 24, 72]
Run Code Online (Sandbox Code Playgroud)

但上面的例子中犯规点出意义产量。教程使用类似的示例来解释产量是什么,因此以下内容变得有点难以理解,

  • 它的挂起功能是什么意思?
  • 在什么情况下会有利?

我来自Java世界,因此很难理解这个概念。

提前致谢。

yield kotlin kotlin-android-extensions kotlin-coroutines

10
推荐指数
2
解决办法
1976
查看次数

基本 Flask 应用程序未运行(类型错误:模块中缺少必填字段“type_ignores”)

我有一个非常基本的烧瓶应用程序,从我的 requirements.txt 安装了依赖项。所有这些依赖项都安装在我的虚拟环境中。

下面给出的requirements.txt,

aniso8601==6.0.0
Click==7.0
Flask==1.0.3
Flask-Cors==3.0.7
Flask-RESTful==0.3.7
Flask-SQLAlchemy==2.4.0
itsdangerous==1.1.0
Jinja2==2.10.1
MarkupSafe==1.1.1
# psycopg2-binary==2.8.2
pytz==2019.1
six==1.12.0
# SQLAlchemy==1.3.4
Werkzeug==0.15.4
python-dotenv
requests
authlib
Run Code Online (Sandbox Code Playgroud)

我在 NewTest.py 文件中的代码,

from flask import Flask, request, jsonify, abort, url_for

app = Flask(__name__)

@app.route('/')
def index():
    return jsonify({
        'success': True,
        'index': 'Test Pass'
    })



if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,

export FLASK_APP=NewTest.py
export FLASK_ENV=development
export FLASK_DEBUG=true

    flask run
or flask run --reload
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,

127.0.0.1 - - [09/Feb/2020 12:43:40] "GET / HTTP/1.1" 500 -
Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python rest virtualenv flask python-3.x

9
推荐指数
3
解决办法
1万
查看次数

从 Flask SQLAlchemy 读取字符数组而不是字符串数组

我在 中创建了下表postgresql

class Test(db.Model):
    __tablename__ = 'Test'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    genres = db.Column(db.ARRAY(db.String(120)))
Run Code Online (Sandbox Code Playgroud)

为了保存genres到测试表中,我从 UI 读取值并通过以下代码将其存储在数据库中,

genres = request.form.getlist('genres')
test = Test(name=name, genres=genres)
    db.session.add(test)
    db.session.commit()
Run Code Online (Sandbox Code Playgroud)

当我从数据库中读取它时,

test = Test.query.get(test_id)
data = test.serialize()
print(f'Data => {data}')
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当我从测试表中读取时,它作为genres字符数组返回,

'genres': ['{', 'A', 'l', 't', 'e', 'r', 'n', 'a', 't', 'i', 'v', 'e', ',', 'B', 'l', 'u', 'e', 's', ',', 'C', 'l', 'a', 's', 's', 'i', 'c', 'a', 'l', '}']
Run Code Online (Sandbox Code Playgroud)

而不是它们创建/存储和保存到表中的方式,表是一个字符串数组,

genres = …
Run Code Online (Sandbox Code Playgroud)

python arrays postgresql sqlalchemy flask-sqlalchemy

8
推荐指数
1
解决办法
2951
查看次数

双击Recycler View适配器的OnClickListener

我试图将一个简单的点击视图添加到回收站视图的项目,但由于某种原因,我必须单击一次项目而不是一次来执行操作.单击时,回收器View似乎没有检测到点击.然而,在下一个上它会检测到点击并执行适当的操作.

XML:

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cardView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <RelativeLayout
        android:id="@+id/rlContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:background="@drawable/selector_inventory_recycler_item"
        android:padding="16dp">

        <ImageView
            android:id="@+id/item_photo"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginRight="16dp"
            />

        <TextView
            android:id="@+id/txtItemName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/item_photo"
            android:textSize="16sp"
            />

        <TextView
            android:id="@+id/txtItemQuantity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/txtItemName"

            android:layout_toRightOf="@+id/item_photo"
            />

        <TextView
            android:id="@+id/txtItemPrice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/txtItemQuantity"
            android:layout_toRightOf="@+id/item_photo"
            />

    </RelativeLayout>

</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

码:

    public class InventoryItemRecyclerAdapter extends RecyclerView.Adapter<InventoryItemRecyclerAdapter.InventoryItemViewHolder>  {


        onItemClickListener mOnItemClickListener = null;

        /**
         *
         */
        public ArrayList<Product> mInventoryItemList;

        Context mContext;

        static String TAG = "InventoryItemRecyclerAdapter";

        Random random = new Random();

        // ------------------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

android onclicklistener recycler-adapter android-recyclerview

7
推荐指数
1
解决办法
4994
查看次数

通过Commandline在Jboss 7.0.1中部署war

我有一个war文件,我需要在Jboss 7.0.1 Server上部署它.现在我已经阅读了文档,但没有找到任何部署war文件的东西.此外,要通过命令行部署构建,通常必须使用maven.那么我们也需要战争吗?如果是这样,它会影响war文件吗?

仅供参考:我正在使用linux(CentOs5)......

linux jboss centos5 java-ee jboss7.x

6
推荐指数
1
解决办法
2万
查看次数

通过Alarm Manager在特定时间创建通知

我想在特定时间创建通知.我正在创建一个广播接收器并通过AlarmManager调用它.问题是没有收到广播,我没有收到任何通知.

在清单中注册广播接收器,

<receiver
        android:name="com.example.android.receivers">
        <intent-filter>
            <action android:name="com.example.android.receivers.AlarmReceiver" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

这是广播接收器,

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context pContext, Intent pIntent) {

//      if (pIntent.getAction().equalsIgnoreCase("")) {
//          
//      }
        Log.d("Alarm Receiver", "onReceive called");        
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(pContext).setSmallIcon(R.drawable.icon).setContentTitle("Test Notification")
                        .setContentText("Test Notification made by Syed Ahmed Hussain");
        Intent resultIntent = new Intent(pContext, CalendarView.class);

        // The stack builder object will contain an artificial back stack for the
        // started Activity.
        // This ensures that navigating backward from the Activity …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver alarmmanager android-alarms android-pendingintent

5
推荐指数
1
解决办法
2万
查看次数