US President Donald Trump, addressing a less-than-full arena for his first political rally in months, hit out at anti-racism protests and defended his handling of the coronavirus pandemic in a bid to reinvigorate his re-election campaign.

The president, who revels in large crowds and had predicted that his first rally in months would be epic, blamed the media for discouraging attendees and cited bad behaviour by demonstrators outside, but did not specifically acknowledge that many seats in the 19,000-seat BOK Center arena were empty.

Mr Trump sought to use the event to bring momentum back to his campaign after coming under fire for his responses to the coronavirus and to the death of George Floyd, who died in the custody of Minneapolis police.

He brushed aside criticism for his decision to hold his first rally since 2 March in Tulsa, the site of the country's bloodiest outbreaks of racist violence against African Americans around 100 years ago.

The president, who has encouraged a militaristic response to the nationwide demonstrations while being accused of showing a lack of empathy for the plight of Black Americans, used his speech to take aim at some of the protesters.

"The unhinged left-wing mob is trying to vandalise our history, desecrate our monuments - our beautiful monuments - tear down our statues and punish, cancel and persecute anyone who does not conform to their demands for absolute and total control. We're not conforming," Mr Trump told cheering supporters.

Ahead of the 3 November election, he is trailing in opinion polls to Joe Biden, who has hammered him for his response to the protests and the pandemic.

Mr Trump defended his response to Covid-19, saying more testing had led to identifying more cases, seemingly to his chagrin.

"When you do testing to that extent, you're going to ...find more cases," he said. "So, I said to my people, 'Slow the testing down, please.'"

A White House official said he was "obviously kidding" with that remark.

Hours before the rally, Mr Trump's campaign announced six members of its advance team had tested positive for Covid-19. Only a handful of attendees wore masks inside the arena.

Oklahoma has reported a surge in new coronavirus cases in recent days, and the state's department of health warned that attendees face an increased risk of catching the virus.

The president, unusually, suggested that his own speech to the partially empty arena was not his best.

"So far tonight, I'm average," Mr Trump said.

While Trump campaign officials said prior to the event that demand far outstripped the capacity of the venue, Mr Trump and

Vice President Mike Pence cancelled speeches to an expected "overflow" crowd after a few dozen supporters showed up to a space prepared for thousands.

Trump campaign spokesman Tim Murtaugh said protesters had "interfered with supporters" trying to enter the rally.

There were some shouting matches and scuffles outside the event between around 30 Black Lives Matter demonstrators and some Trump supporters waiting to enter.

A Reuters reporter saw no sign any Trump supporters were prevented from entering the arena or overflow area.

Mr Trump warned that, unless he was re-elected, all Americans would endure the "chaos you're seeing in our Democratic-run cities."

"When you see those lunatics all over the streets, its damn nice to have arms," he said, vowing to protect Americans' rights to bear arms.

"Our people are not nearly as violent, but if they ever were it would be a terrible, terrible day for the other side."

The country's racial divide remains a political vulnerability for Mr Trump. His "law and order" reaction to the protests triggered by Mr Floyd's death has put him at odds with the views of most Americans.

After intense criticism, Trump postponed the rally by a day so that it did not coincide with the anniversary of the 19 June  commemoration of the end of slavery in the United States.