范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

CQt开发音视频播放

  播放内存中的音乐    QFile read("./music/Nevada.mp3");     if (!read.open(QIODevice::ReadOnly))     {         qDebug() << "文件打开失败,请重试~";     }     //下面用的对象,必须动态申请,不然构造函数执行完毕,局部变量内存会被释放     QByteArray *data = new QByteArray(read.readAll());     read.close();      QBuffer *buffer = new QBuffer(data,this);     if (!buffer->open(QIODevice::ReadWrite))     {         qDebug() << "buffer error";     }     //qDebug() << data;     QMediaPlayer *player = new QMediaPlayer(this);     player->setMedia(QMediaContent(),buffer);     player->play();播放内存中的视频    QMediaPlayer *player = new QMediaPlayer(this);     player->setMedia(QUrl("./music/MMD.mp4"));     player->play(); ​     QVideoWidget* videowidget = new QVideoWidget(this);     player->setVideoOutput(videowidget);
  vs中如果提示编译器堆空间不足,则打开vcxproj工程文件,在PropertyGroup中添加如下代码           x64  
  【领QT开发教程 学习资料,点击下方链接免费领取↓↓ ,先码住不迷路~】
  点击→领取「链接」音视频播放播放音频
  在Qt中,要想使计算机发出响声,最简单的方法是调用QApplication : : beep()静态函数。而Qt Multimedia模块中提供了多个类来实现不同层次的音频输入,输出和处理。QSound
  QSound类提供了播放.wav声音文件的方法。
  Qt 提供了 GUI 应用程序中最常用的音频操作:异步播放声音文件。 使用静态 play() 函数最容易做到这一点: QSound::play("mysounds/bells.wav");
  或者,首先从声音文件创建一个 QSound 对象,然后调用 play() 槽:  QSound bells("mysounds/bells.wav");   bells.play();
  在这两种情况下,文件可能是本地文件或资源中的文件。
  一旦创建了 QSound 对象,就可以查询它的 fileName() 和 loops() 总数(即声音播放的次数)。 可以使用 setLoops() 函数更改重复次数。 播放声音时,loopsRemaining() 函数返回剩余的重复次数。 使用 isFinished() 函数来确定声音是否播放完毕。
  使用 QSound 对象播放的声音可能会比静态 play() 函数使用更多的内存,但它也可能播放得更快(取决于底层平台的音频设施)。
  如果您需要更好地控制播放声音,请考虑 QSoundEffect 或 QAudioOutput 类。Public FunctionsQSound(const QString &filename, QObject *parent = nullptr) virtual ~QSound() QString fileName() const bool isFinished() const int loops() const int loopsRemaining() const void setLoops(int number)Slotsvoid play() void stop()Static Public Membersvoid play(const QString &filename)QSoundEffect
  QSoundEffect类提供了一种播放低延迟声音效果的方法 。
  这个类允许你以较低的延迟方式播放未压缩的音频文件(通常是WAV文件),并且适用于"反馈"类型的声音,以响应用户的动作(例如虚拟键盘声音,弹出对话框的正面或负面反馈,或游戏声音)。 如果低延迟不重要,可以考虑使用QMediaPlayer类,因为它支持更广泛的媒体格式,并且资源消耗更少。
  看个例子:QSoundEffect effect; effect.setSource(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/video_call.wav")); effect.setLoopCount(QSoundEffect::Infinite); effect.setVolume(0.8f); effect.play();
  通常应该重用音效,这样可以提前完成所有解析和准备工作,并且只在必要时触发。 这有助于降低延迟音频播放。class MyGame { public:   MyGame(): m_videoCall(this)   {       m_videoCall.setSource(QUrl::fromLocalFile("video_call.wav"));       m_videoCall.setVolume(0.25f); ​       // Set up click handling etc.       connect(clickSource, &QPushButton::clicked, &m_videoCall, &QSoundEffect::play);   } private:   QSoundEffect m_videoCall; }
  由于QSoundEffect需要更多的资源来实现较低的延迟播放,平台可能会限制同时播放声音效果的数量。
  【领QT开发教程 学习资料,点击下方链接免费领取↓↓ ,先码住不迷路~】
  点击→领取「链接」Public Functions设置//设置源(wav文件路径) void setSource(const QUrl &url) //设置循环次数   void setLoopCount(int loopCount) //设置静音 void setMuted(bool muted) //设置音量0~1之间 void setVolume(qreal volume)判断//音效是否加载完毕 bool isLoaded() const //是否是静音     bool isMuted() const //是否正在播放     bool isPlaying() constSlotsvoid play() //播放 void stop() //停止Signalsvoid categoryChanged() void loadedChanged() void loopCountChanged() void loopsRemainingChanged() void mutedChanged() void playingChanged() void sourceChanged() void statusChanged() void volumeChanged()枚举QSoundEffect::Status
  枚举
  描述
  QSoundEffect::Null
  未设置源或源为空。
  QSoundEffect::Loading
  SoundEffect 正在尝试加载源。
  QSoundEffect::Ready
  源已加载并准备好播放。
  QSoundEffect::Error
  运行过程中出现错误,例如加载源失败。QMediaPlayer
  QMediaPlayer类是一个高级媒体播放类。 它可以用来播放歌曲、电影和网络广播等内容。 要播放的内容被指定为QMediaContent对象,可以将其视为附加了附加信息的主要或规范URL。 当提供QMediaContent时,可以开始播放。QMediaPlayer player; player.setMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3")); player.setVolume(50); player.play();
  QVideoWidget可以与QMediaPlayer一起用于视频渲染,QMediaPlaylist用于访问播放列表功能。QVideoWidget wid; wid.show(); ​ QMediaPlaylist playList; playList.addMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3")); playList.addMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/干坤坤.mp4")); ​ QMediaPlayer player; player.setPlaylist(&playList); //player.setMedia(QUrl::fromLocalFile("F:/MyCode/QtObjectCode/QtCourse/soundeffect/That-Girl.mp3")); player.setVolume(50); playList.next(); player.setVideoOutput(&wid); player.play();Public Functions//该值是当前媒体的总播放时间,以毫秒为单位。 该值可能在QMediaPlayer对象的生命周期中发生变化,并且可能在初始回放开始时不可用,请连接到durationChanged()信号来接收状态通知。   qint64 duration() const //将QVideoWidget视频输出附加到媒体播放器。   void setVideoOutput(QVideoWidget *output) void setVideoOutput(QGraphicsVideoItem *output) void setVideoOutput(QAbstractVideoSurface *surface)  Public Slots//暂停播放当前源 void pause()     //开始或恢复播放当前源     void play() //设置当前媒体源。 使用mediaStatusChanged()和error()信号,以便在加载媒体和加载过程中发生错误时得到通知       void setMedia(const QMediaContent &media, QIODevice *stream = nullptr) //设置静音     void setMuted(bool muted) //设置倍速播放 void setPlaybackRate(qreal rate) //设置播放列表     void setPlaylist(QMediaPlaylist *playlist) //设置播放位置,以媒体开始后的毫秒数为单位。 位置的周期性变化将用信号positionChanged()表示,更新间隔可以用QMediaObject的方法setNotifyInterval()设置。     void setPosition(qint64 position) //此属性保存当前播放音量。  播放音量是线性缩放的,从0(静音)到100(全音量)。默认为100       void setVolume(int volume) //停止播放,并将播放位置重置到开始     void stop()Signals//表示当前播放内容已更改为media。   void currentMediaChanged(const QMediaContent &media) //表示内容的持续时间已更改为持续时间,以毫秒表示。   void durationChanged(qint64 duration)     //产生了错误 void error(QMediaPlayer::Error error) //表示媒体来源已转变为media。       void mediaChanged(const QMediaContent &media) //表示当前媒体的状态已经改变     void mediaStatusChanged(QMediaPlayer::MediaStatus status) //静音状态改变   void mutedChanged(bool muted) //播放速率改变 void playbackRateChanged(qreal rate) //播放位置改变     void positionChanged(qint64 position) //表示播放器对象的状态已经改变。   void stateChanged(QMediaPlayer::State state) //音量改变 void volumeChanged(int volume)枚举
  (enum QMediaPlayer::Error)媒体播放器产生的具体错误。
  枚举
  描述
  MediaPlayer::NoError
  没有错误发生
  QMediaPlayer::ResourceError
  无法解析媒体源
  QMediaPlayer::FormatError
  媒体资源的格式不受(完全)支持。 重新播放是可能的,但没有音频或视频组件。
  QMediaPlayer::NetworkError
  网络错误
  QMediaPlayer::AccessDeniedError
  没有播放媒体资源的适当权限。
  QMediaPlayer::ServiceMissingError
  找不到有效的播放服务,无法继续播放。
  (enum QMediaPlayer::Flag)播放标志。
  枚举
  描述
  QMediaPlayer::LowLatency
  该播放器预计将用于简单的音频格式,播放没有明显的延迟。 这种回放服务可以用于蜂鸣声、铃声等。
  QMediaPlayer::StreamPlayback
  该播放器预计将播放基于QIODevice的流。 如果传递给QMediaPlayer构造器,将选择支持流回放的服务。
  QMediaPlayer::VideoSurface
  期望播放器能够呈现为QAbstractVideoSurface输出。
  (enum QMediaPlayer::MediaStatus)定义媒体播放器当前媒体的状态。
  枚举
  描述
  QMediaPlayer::UnknownMediaStatus
  无法确定媒体的状态。
  QMediaPlayer::NoMedia
  没有当前的媒体。 播放器处于停止状态。
  QMediaPlayer::LoadingMedia
  当前媒体正在加载中。 播放器可能处于任何状态。
  QMediaPlayer::LoadedMedia
  已加载当前媒体。 播放器处于停止状态。
  QMediaPlayer::StalledMedia
  由于缓冲不足或其他一些临时中断,当前媒体的播放已停止。 播放器处于PlayingState或PausedState
  QMediaPlayer::BufferingMedia
  播放器正在缓冲数据,但缓冲了足够的数据以供播放。 播放器处于PlayingState或PausedState。
  QMediaPlayer::BufferedMedia
  播放器已经完全缓冲了当前的媒体。 播放器处于PlayingState或PausedState。
  QMediaPlayer::EndOfMedia
  播放已经结束。 播放器处于停止状态。
  QMediaPlayer::InvalidMedia
  当前媒体无法播放。 播放器处于停止状态。
  (enum QMediaPlayer::State)媒体播放器的当前状态。
  枚举
  描述
  QMediaPlayer::StoppedState
  播放停止状态
  QMediaPlayer::PlayingState
  播放进行状态
  QMediaPlayer::PausedState
  播放暂停状态QMediaPlaylist
  QMediaPlaylist类提供了要播放的媒体内容列表。
  QMediaPlaylist旨在与其他媒体对象一起使用,如QMediaPlayer。
  QMediaPlaylist允许访问服务固有的播放列表功能(如果可用的话),否则它提供本地内存播放列表实现。  playlist = new QMediaPlaylist;   playlist->addMedia(QUrl("http://example.com/movie1.mp4"));   playlist->addMedia(QUrl("http://example.com/movie2.mp4"));   playlist->addMedia(QUrl("http://example.com/movie3.mp4"));   playlist->setCurrentIndex(1); ​   player = new QMediaPlayer;   player->setPlaylist(playlist); ​   videoWidget = new QVideoWidget;   player->setVideoOutput(videoWidget);   videoWidget->show(); ​   player->play();
  根据播放列表源代码的实现,大多数播放列表更改操作可以是异步的。
  【领QT开发教程 学习资料,点击下方链接免费领取↓↓ ,先码住不迷路~】
  点击→领取「链接」Public Functions构造与析构QMediaPlaylist(QObject *parent = nullptr) virtual ~QMediaPlaylist()添加/移除/清空媒体bool addMedia(const QMediaContent &content) bool addMedia(const QList &items)      bool insertMedia(int pos, const QMediaContent &content) bool insertMedia(int pos, const QList &items)          bool removeMedia(int pos) bool removeMedia(int start, int end)  bool clear()保存/加载播放列表bool save(const QUrl &location, const char *format = nullptr) bool save(QIODevice *device, const char *format)  void load(const QNetworkRequest &request, const char *format = nullptr) void load(const QUrl &location, const char *format = nullptr) void load(QIODevice *device, const char *format = nullptr)获取播放内容int currentIndex() const QMediaContent currentMedia() const  QMediaContent media(int index) const int nextIndex(int steps = 1) const  int previousIndex(int steps = 1) const      int mediaCount() const操作播放列表bool moveMedia(int from, int to) void setPlaybackMode(QMediaPlaylist::PlaybackMode mode)其他QMediaPlaylist::Error error() const QString errorString() const      bool isEmpty() const bool isReadOnly() constslotsvoid next() void previous() void setCurrentIndex(int playlistPosition) void shuffle()signalsvoid currentIndexChanged(int position) void currentMediaChanged(const QMediaContent &content) void loadFailed() void loaded() void mediaAboutToBeInserted(int start, int end) void mediaAboutToBeRemoved(int start, int end) void mediaChanged(int start, int end) void mediaInserted(int start, int end) void mediaRemoved(int start, int end) void playbackModeChanged(QMediaPlaylist::PlaybackMode mode)枚举
  (enum QMediaPlaylist::Error)QMediaPlaylist错误码。
  枚举
  描述
  QMediaPlaylist::NoError
  没有错误
  QMediaPlaylist::FormatError
  格式错误
  QMediaPlaylist::FormatNotSupportedError
  格式不支持
  QMediaPlaylist::NetworkError
  网络错误
  QMediaPlaylist::AccessDeniedError
  访问错误(拒绝访问)
  (enum QMediaPlaylist::PlaybackMode)描述了播放列表中的播放顺序。
  枚举
  描述
  QMediaPlaylist::CurrentItemOnce
  单曲播放一次
  QMediaPlaylist::CurrentItemInLoop
  单曲循环
  QMediaPlaylist::Sequential
  顺序播放(列表播放完结束)
  QMediaPlaylist::Loop
  列表循环(列表播放完,从头开始继续播放)
  QMediaPlaylist::Random
  随机播放QMediaContent
  QMediaContent类提供对与媒体内容相关的资源的访问。
  QMediaContent在多媒体框架内用作媒体内容的逻辑句柄。 一个QMediaContent对象包含一个QNetworkRequest,它提供了内容的URL。
  非空QMediaContent将始终具有对通过request()方法可用的内容的引用。
  另外,QMediaContent可以表示播放列表,并包含指向有效QMediaPlaylist对象的指针。 在这种情况下URL是可选的,可以是空的,也可以指向播放列表的URL。Public FunctionsQMediaContent(QMediaPlaylist *playlist, const QUrl &contentUrl = QUrl(), bool takeOwnership = false) QMediaContent(const QMediaContent &other) QMediaContent(const QNetworkRequest &request) QMediaContent(const QUrl &url) QMediaContent() QMediaContent &operator=(const QMediaContent &other) ~QMediaContent() bool isNull() const QMediaPlaylist *playlist() const QNetworkRequest request() const bool operator!=(const QMediaContent &other) const bool operator==(const QMediaContent &other) const视频播放QMediaPlayer
  QMediaPlayer类可用来播放视频,只不过需要搭配专门的视频显示控件来使用。针对视频播放的函数void setVideoOutput(QVideoWidget *output) void setVideoOutput(QGraphicsVideoItem *output)      //当前媒体的视频是否可用,如果可用,可以使用QVideoWidget类来查看视频。 bool isVideoAvailable() const    QVideoWidget需包含模块multimediawidgets
  QVideoWidget类提供了一个小部件,用于呈现由媒体对象生成的视频。
  将 QVideoWidget 附加到 QMediaObject 允许它显示该媒体对象的视频或图像输出。 QVideoWidget 通过在其构造函数中传递指向 QMediaObject 的指针附加到媒体对象,并通过销毁 QVideoWidget 来分离。  player = new QMediaPlayer; ​   playlist = new QMediaPlaylist(player);   playlist->addMedia(QUrl("http://example.com/myclip1.mp4"));   playlist->addMedia(QUrl("http://example.com/myclip2.mp4")); ​   videoWidget = new QVideoWidget;   player->setVideoOutput(videoWidget); ​   videoWidget->show();   playlist->setCurrentIndex(1);   player->play();
  注意:一次只能将一个显示输出附加到媒体对象。Public FunctionsQVideoWidget(QWidget *parent = nullptr) virtual ~QVideoWidget()      Qt::AspectRatioMode aspectRatioMode() const int brightness() const      //亮度 int contrast() const        //对比度 int hue() const             //色调 bool isFullScreen() const   //是否全屏 int saturation() const      //饱和度Slots//设置视频缩放时,宽度和高度的变化模式 void setAspectRatioMode(Qt::AspectRatioMode mode) //调整显示视频的亮度。有效亮度值范围在 -100 到 100 之间,默认值为 0。     void setBrightness(int brightness) //调整显示的视频的对比度。有效对比度值范围在-100到100之间,默认值为0。      void setContrast(int contrast) //调整显示视频的色调。有效的色调值范围在 -100 到 100 之间,默认值为 0。     void setHue(int hue) //调整显示视频的饱和度。 有效的饱和度值范围在-100到100之间,默认值是0。 void setSaturation(int saturation)     //设置窗口全屏显示     void setFullScreen(bool fullScreen)Signals//亮度改变 void brightnessChanged(int brightness) //对比度改变     void contrastChanged(int contrast) //是否全屏状态改变     void fullScreenChanged(bool fullScreen) //饱和度改变     void saturationChanged(int saturation) //色调改变     void hueChanged(int hue)
  https://www.cnblogs.com/lxuechao/p/12677357.html摄像机QCameraInfo
  QCameraInfo 类提供有关相机设备的一般信息。
  QCameraInfo 允许您查询系统上当前可用的相机设备。
  静态函数 defaultCamera() 和 availableCameras() 为您提供所有可用相机的列表。
  此示例打印所有可用相机的名称: const QList cameras = QCameraInfo::availableCameras();  for (const QCameraInfo &cameraInfo : cameras)      qDebug() << cameraInfo.deviceName();
  一个QCameraInfo可以用来构造一个QCamera。 下面的例子实例化所有可用相机设备中第一个相机设备QCamera:  const QList cameras = QCameraInfo::availableCameras();   camera = new QCamera(cameras.first());
  你也可以使用QCameraInfo来获得一个相机设备的一般信息,例如描述,在系统上的物理位置,或相机传感器的方向。 QCamera myCamera;   QCameraInfo cameraInfo(myCamera); ​   if (cameraInfo.position() == QCamera::FrontFace)       qDebug() << "摄像头位于硬件系统的正面。";   else if (cameraInfo.position() == QCamera::BackFace)       qDebug() << "摄像头位于硬件系统的背面。"; ​   qDebug() << "相机传感器方向是 " << cameraInfo.orientation() << " 度.";QCamera
  QCamera类为系统摄像机设备提供接口。
  QCamera可以与QCameraViewfinder一起使用,用于取景器显示,QMediaRecorder用于视频录制,QCameraImageCapture用于图像拍摄。
  你可以使用QCameraInfo列出可用的相机并选择使用哪一个。Public Functions设置捕获模式QCamera::CaptureModes captureMode() const void setCaptureMode(QCamera::CaptureModes mode)设置取景器void setViewfinder(QVideoWidget *viewfinder) void setViewfinder(QGraphicsVideoItem *viewfinder)枚举QCamera::CaptureMode
  捕获模式
  枚举
  描述
  QCamera::CaptureViewfinder
  取景器模式,只是简单的显示
  QCamera::CaptureStillImage
  帧捕获模式,比如:拍照
  QCamera::CaptureVideo
  视频捕获模式,比如:录制视频

CBA辽宁籍后卫为何在山东高速男篮中能够收获成功,气质是关键CBA联赛作为中国顶级联赛,自从进入21世纪联赛从甲A改制以来,已经伴随球迷有二十余年的光阴,作为联赛中的元老球队,山东高速男篮和辽宁男篮也是从CBA联赛开始以来就一直在顶级联赛中1966年福州3个战士驾船叛逃台湾,周总理下令打掉接应机1966年1月8日夜晚,正准备休息的周总理突然接到了一通电话。刚一接通,对面立马传来了十分焦急的声音总理,我是曾幼诚啊!总理笑了笑询问道幼诚出什么事了?很少见你如此急躁。时任军司令好品山东歌尔股份频出好品的背后是创新记者黄寿赓9月8日,在中央广播电视总台山东省人民政府联合举办的好客山东好品山东宣传推介活动上,歌尔AR智能眼镜作为智能科创产品的代表亮相,该产品可将信息或三维虚拟效果与现实世界融合来自山东22年的追踪研究多吃大蒜就能抗癌?到底是不是真的?大蒜,是近几年人们经常提及到的调味品之一,拥有辛辣口感的它,还被誉为是健康食品之一,虽然吃起来可能有点臭,但丝毫不影响人们对它的健康印象。尤其在来自北京大学临床肿瘤学院的对照临床研国军不想让我军过泸定桥,为何不把桥给炸了?刘文辉我可不傻引言蒋介石的野心很大,他一直想统一全国,成为中国最高领导人,所以他率领国军东征西战,先后发动了不少战争,并成功战胜了其他军阀,最终,整个中国只剩下国军和共军在苦苦斗争着。当时国共两他秘密潜伏,送出国民党空军作战绝密情报1945年夏,八路军驻重庆办事处来了一位不速之客,他就是来自成都国民党空军的飞行员赵良璋。此次秘密来到重庆是为了与共产党组织取得联系。赵良璋国民党空军飞行员的身份引起了中共南方局的朝鲜女孩能嫁到中国来吗?众所周知,我们的近邻朝鲜男少女多,女性长得漂亮,纯朴勤劳,特适合做贤内助。那么,现在中国男多女少,不少人娶了美日俄越等外国新娘,能不能娶个朝鲜姑娘做老婆呢?50年代,抗美援朝战争后中国小伙赴朝鲜旅游,在朝鲜平壤所见所闻到朝鲜旅游虽然只有短短四天的时间。但在平壤的所见所闻,让我感触很深。我们导游说,朝鲜早就实行了免费的十二年义务教育,朝鲜人看病不用花钱,住房也不需要花钱。走在平壤街头,你也会发现这来到朝鲜,有什么高档餐厅吗?别错过呀去过朝鲜的人都知道,当地人对游客是十分看重的,毕竟这是他们在国际社交圈内为数不多的表现机会,说住的,酒店个顶个都是当地的地标建筑,而说到吃的,也堪称当地的高档餐厅,尽管数量不多却还1965年,外交部长陈毅在国际上险酿大祸,周总理谁给你的权利?1965年,中南海的一间办公室里,周恩来总理对着眼前的人大声斥责谁给你的权力?你这是无组织无纪律。周恩来气愤地砰砰砰地敲了几下桌子,熟悉周恩来的人都知道。儒雅两个字简直就是他的代名顾顺章叛变后,出卖了四个负责人,第一个便让整个中统傻了眼1931年,中共中央特科几乎遭受了灭顶之灾,因为特科领导顾顺章的叛变,导致我党大部分地下机关遭受打击,就连周总理也不得不暂时撤离,暂避风头,一时间整座上海城人心惶惶。与此同时,国民
上市即暴跌200亿,零跑为何不能领跑?全球第五大车企?零跑的招股书引用咨询公司弗若斯特沙利文(FrostSullivan)报告称,根据去年的销量数据,零跑是全球第五大和中国第四大新能源电动汽车公司。单就销量数据而言或许长期晚饭喝点白酒的人,身体会怎样?养生还是伤身,答案很明显老刘自认是一个文艺范的老大爷。在他看来,喝酒,是一种文化的标志。你看,李白会举杯邀明月,苏轼会有把酒问青天。而他老刘也会每晚来两杯白酒。一旦有人质疑,他又不写诗,又不作文,天天喝酒名气不大脾气却不小,自以为很红结果被打脸,这7个明星太尴尬了实在是尴尬一些艺人刚在娱乐圈呆几年,就以为自己是明星了。有些演员刚演了几部戏,就觉得自己是巨星了。所以,他们的脾气见长,出行排场也大了起来。到最后他们发现,娱乐圈里没人惯着他们,粉比亚迪王传福从生产手机电池到跨行做汽车当初的投资人已成首富古之成大事者,不唯有超世之才,亦有坚韧不拔之志。命运多舛王传福1966年出生于安徽芜湖市无为县,他在家中排行老七,前面有5个姐姐一个哥哥。十三岁时王传福的父亲因积劳成疾去世,两年后北宋是如何灭亡的?一句话不作死就不会死宋朝是后周禁军将领赵匡胤通过陈桥兵变夺取帝位后建立的宋朝(后被称之为北宋),首都东京,公元1127年金兵攻破宋朝的东京汴梁城,至此,北宋灭亡。同年,康王赵构于南京应天府立了新的政权他做到了从湖南科技大学保研清华大学,还是计算机专业探索知识的趣味与秘密他是超越标准范式的顶尖学霸穷尽科学的浪漫与奥义他是人工智能世界的头号玩家他是拿下清华大学offer的计算机学子张宇人物名片张宇计算机科学与工程学院2019级数据集颜值与才华于一身,湖南高校全能学霸保研清华探索知识的趣味与秘密,他是超越标准范式的顶尖学霸穷尽科学的浪漫与奥义,他是人工智能世界的头号玩家日前,湖南科技大学计算机科学与工程学院2019级数据科学与大数据技术专业本科生张宇收这些图片,见证了湖南高质量发展的新优势奋进新时代主题成就展湖南单元图片选登第三篇章塑造发展新优势湖南省坚决办好发展经济这个最大实事加快建设现代化经济体系不断增强经济创新力和竞争力努力在推动高质量发展上闯出新路子以怀化国庆城一座活着的千年古城千年,久远悠长。古城,历史沧桑,一草一物当有厚重的过去。黄土深厚的西部高原,一座活着的千年古城,在大街小巷田街古道民风日情里蕴藏着历史。这里,是庆阳庆城。古城历史悠久,据最早的文字运城头条山西绛州千年古城庆盛世迎盛会流光溢彩美如画2022年10月13日,山西绛州千年古城庆盛世迎盛会流光溢彩美如画。当日,随着举国喜迎党的二十大胜利召开,在千年古城全国历史文化名城山西运城市新绛县古城绛州,战疫中的大街小巷国旗招考古遗址时代风采丨里耶古城遗址把秦朝洞庭郡的故事,讲给天南海北的游客听全媒体记者廖慧文踏过里耶古镇的青石板街,走上酉水河堤。河堤砌成城墙的模样,古意盎然。惬意地伴着酉水上吹来的秋风再行一段,里耶古城遗址,就出现在眼前。20年前,因酉水河修建碗米坡水利